Я понимаю, что на некоторых языках программирования генераторы случайных чисел генерируют значение по умолчанию от 0 до 32767 (например, в php, rand (), возвращают float от 0 до 32767). Каково значение такого случайного числа? (Так как это не сила двух или ничего особенного.)
32767 + 1 – это мощность 2. Двоичное представление чисел использует степени 2. Таким образом, в 4-битной структуре 0101
составляет 2 ^ 0 x 1, 2 ^ 1 x 0, 2 ^ 2 x 1 и 2 ^ 3 x 0, которое равно 5.
MSB используется для целых чисел без знака.
Это 2 ^ 15-1, поэтому макс. значение 16-битного подписанного int.
Я предполагаю, что в 16-битных реализациях (все еще распространенных при написании стандарта C89) это было наибольшее целое число со знаком.