Prateek Krishna Ответов: 2

Является ли (1<<29) самым большим целым числом?


1&ЛТ;&ЛТ;29.что это значит?
я знаю его побитовую операцию?

Что я уже пробовал:

and why is it defined?

1< 29.как это может быть самое большое целое число?

2 Ответов

Рейтинг:
2

phil.o

Для 32-битного компьютера подписанный целое число, максимальное [положительное] значение равно (1 << 31) - 1 (потому что 1 << 31 представляет собой минимальное [отрицательное] значение), или 2 147 483 647.

Для 32-битного компьютера неподписанный целое число, максимальное значение которого равно (1 << 32) - 1 (минимальное значение равно 0), или 4 294 967 295.

Аналогично:

Для 64-битной версии подписанный целое число, максимальное значение которого равно (1 << 63) - 1 (потому что 1 << 63 представляет собой минимальное [отрицательное] значение), или 9 223 372 036 854 775 807.

Для 64-битной версии неподписанный целое число, максимальное значение которого равно (1 << 64) - 1, или 18 446 744 073 709 551 615.

Возможно, это поможет вам понять операции двоичного сдвига:
Арифметический сдвиг - Википедия[^]


Рейтинг:
0

OriginalGriff

Да, это немного мудрая операция:

x << y
сдвигает х влево на y бит.
x  y  x << y  binary
1  1  2       000010 
2  1  4       000100 
1  3  8       001000
...
Так
1 << 29
один переехал 29 бит влево.или, если хотите, один еще 29 нулей в двоичном, или 536 870 912 которая нигде не рядом как можно большее значение в 32-разрядное целое число: 2 147 483 647 или 01111111111111111111111111111111 в двоичной системе.


Maciej Los

5ed!

Patrice T

Вы-усре ?

2  1  4       000100 

Я бы этого и ожидал
1  2  4       000100 

phil.o

Вы правы, здесь есть опечатка, даже если в этом случае, 2 << 1 == 1 << 2- Наполовину ошибка, так что :)