Posteriori
Просветленный
(24475)
3 года назад
Я бы тоже хотел узнать.
Всё что знаю по этому поводу - компьютер использует дополнительный код.
Это когда реверсируешь число и добавляешь единицу.
Есть ещё предположение, что он для этого специальные знаки типа мантиссы использует
Двоечник Обыкновенный
Высший разум
(106561)
3 года назад
Какие символы или цифры отобразить решает программа, которую ты запускаешь. Для неё нет разницы, число там или текст. В программе все в единицах и нулях. Но тот, кто пишет программу определяет способ представления информации конечному пользователю.
Аглая Шниц
Искусственный Интеллект
(147661)
3 года назад
ты ему сам скажешь, как интерпретировать эти единицы.
char c = 0xFF;
// как символ:
printf("as char: %c\n", c);
// как целое со знаком:
printf("as int: %hhd\n", c);
// как целое без знака:
printf("as unsigned int: %hhu\n", c);
punkochelУченик (243)
3 года назад
int var = 255; // запишется в памяти как 1111 1111
int var2 = -1; // запишется в памяти как 1111 111
Ладно, возьмем С. Там мы пишем printf("%d, %d", var, var2); и результат будет 255, -1. Как программа определила что var и var2 имеют разные знаки, если в памяти они хранились 1111 1111?
Батаев Дмитрий
Просветленный
(23290)
3 года назад
со времён бейсика переменные объявлялись спецификатором, в котором указывался тип переменной - int, double, string и далее следовал идентификатор. По-любому идентификатор превращался в адрес хранения ПЕРВОЙ ячейки памяти, а вот по спецификатору программа понимает, что работать нужно с 4, 8 или строкой из стольких байт, сколько указазал для размера строковой переменной "программист" )))
Батаев ДмитрийПросветленный (23290)
3 года назад
ищите, точнее обращайтесь к истокам программирования в частности описание языка бейсик и там пользователям доходчиво объяснялось КАК расположены переменные технически в памяти, что и сколько занимают. Про уточнение имён переменных не говорю, там еще посложнее ))