Чтобы перевести целые десятичные числа в 16-разрядное представление в памяти, необходимо сначала понять, как числа хранятся в компьютере. Чаще всего используются два основных формата представления чисел: беззнаковое целое число (unsigned integer) и знаковое целое число (signed integer). В 16-разрядной системе это означает, что каждый такой номер занимает 16 бит.
Беззнаковое целое число (unsigned integer)
Беззнаковое целое число может принимать значения от 0 до 65535.
Пример: переведем число 30000 в 16-разрядное представление.
- Представим число 30000 в двоичной системе:
- 30000 (10) = 0111 0101 0011 0000 (2).
- В 16-разрядном представлении это будет:
- 30000 (10) = 0111 0101 0011 0000 (2).
Знаковое целое число (signed integer)
Знаковое целое число в 16-разрядной системе использует первый бит для обозначения знака числа (0 для положительных, 1 для отрицательных). Диапазон значений в этом случае от -32768 до 32767.
Пример 1: переведем число 20000 в 16-разрядное представление.
- Представим число 20000 в двоичной системе:
- 20000 (10) = 0100 1110 0010 0000 (2).
- В 16-разрядном представлении это будет:
- 20000 (10) = 0100 1110 0010 0000 (2).
Пример 2: переведем число -20000 в 16-разрядное представление.
- Найдем двоичное представление числа 20000:
- 20000 (10) = 0100 1110 0010 0000 (2).
- Инвертируем все биты (получаем обратный код числа):
- Добавим 1 к результату (получаем дополнительный код числа):
- 1011 0001 1101 1111 + 1 = 1011 0001 1110 0000 (2).
- В 16-разрядном представлении это будет:
- -20000 (10) = 1011 0001 1110 0000 (2).
Пример общего конвертирования
Пример 3: переведем число 12345 в 16-разрядное представление.
- Представим число 12345 в двоичной системе:
- 12345 (10) = 0011 0000 0011 1001 (2).
- В 16-разрядном представлении это будет:
- 12345 (10) = 0011 0000 0011 1001 (2).
Пример 4: переведем число -12345 в 16-разрядное представление.
- Найдем двоичное представление числа 12345:
- 12345 (10) = 0011 0000 0011 1001 (2).
- Инвертируем все биты:
- Добавим 1 к результату:
- 1100 1111 1100 0110 + 1 = 1100 1111 1100 0111 (2).
- В 16-разрядном представлении это будет:
- -12345 (10) = 1100 1111 1100 0111 (2).
Такие шаги позволяют получить представление любых целых десятичных чисел в 16-разрядной ячейке памяти как для беззнаковых, так и для знаковых чисел.