Другие языки программирования и технологии

Информатика 11 класс.

1.Какое максимальное число можно записать в ячейку размером 64 бита? Рассмотрите варианты хранения чисел со знаком и без знака.
2. Можно ли использовать для хранения "длинного числа" символьную строку? Какие проблемы могут возникнуть при этом?
int64_t (целое 64-разрядное число со знаком)
Минимальное значение: − 9 223 372 036 854 775 808
Максимальное значение: 9 223 372 036 854 775 807

uint64_t (целое 64-разрядное число без знака)
Минимальное значение: 0
Максимальное значение: 18 446 744 073 709 551 615

P.S. Название типов из C++

Для хранения длинного числа можно использовать символьную строку, однако для компьютера данная переменная (массив символов) числом не является, не может использоваться в арифметических операциях, операциях математического сравнения с числами, однако сравнить две строки, которые представляют из себя "числа" можно, путем сравнения разрядов (символов) от первого к последнему, пока один из них не окажется больше.
Проблема может возникнуть с невозможностью конвертации этой строки в число, если для его хранения предполагается использовать базовый тип данных, ибо может просто не хватить 64бит - максимального размера числа в С++, однако для таких случаев, в С++ реализован алгоритм создания переменной с максимально возможным размером, тип данных "intmax_t". Он гарантированно вмещает в себя число любого размера, которое ЭВМ может позволить физически. Проще говоря, если речь идет о С++ -использование строки вместо типа данных "intmax_t" или "uintmax_t" неоправданно. В языках же типа Python алгоритм для хранения числа "любого" размера заложен изначально.
Cергей Рысляев
4 807
Лучший ответ
В Вашем ответе не сказано, о каких числах идет речь.
Поэтому мы вольны предположить, что это могут быть вещественные числа.
Тогда согласно формату двойной точности (IEEE754) максимальное число в переводе в десятичную систему будет примерно равно
≈ 1.7976931348623157 × 10^308

https://en.wikipedia.org/wiki/Double-precision_floating-point_format
Даниил Железов
Даниил Железов
41 118
1)Уже ответили
2)Ты не сможешь работать с ней, используя математическую арифметику. Придется, в любом случае, преобразовавать его в число, ну или пилить свои "костыльные" алгоритмы
Не помню чтобы в информатике 11 го класса были подобные вопросы.
Sergei Ivanov
Sergei Ivanov
1 356
3123123
Владимир Бондаревский 1) задача

Здесь так 64 бит (= 64 единички) = 8 байт
1 байт = 256
8 байт = 256^8 - максимальное положительное число, если использовать в записи только натуральные числа
64 бита = от 0 до 256^8 - 1

Если использовать числа положительные и отрицательные, тогда
для выделения знака используется первая цифра и она равна "1".
Результатом будет минимальное = -128^8
максимальное будет = 128^8 - 1