Перевод чисел в различные системы счисления
Рассмотрим пример перевода числа 1101.011 из шестнадцатиричной в двоичную систему счисления восьмибайтовое знаковое в восьмибайтовое в беззнаковое
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
= 1∙4096 + 1∙256 + 0∙16 + 1∙1 + 0∙0.0625 + 1∙0.00390625 + 1∙0.000244140625
= 4096 + 256 + 0 + 1 + 0 + 0.00390625 + 0.000244140625
= 4353.00415039062510
Получилось: 1101.01116 = 4353.00415039062510
Переведем число 4353.00415039062510 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 4353 | 2 | |||||||||||||
| -4352 | 2176 | 2 | ||||||||||||
| 1 | -2176 | 1088 | 2 | |||||||||||
| 0 | -1088 | 544 | 2 | |||||||||||
| 0 | -544 | 272 | 2 | |||||||||||
| 0 | -272 | 136 | 2 | |||||||||||
| 0 | -136 | 68 | 2 | |||||||||||
| 0 | -68 | 34 | 2 | |||||||||||
| 0 | -34 | 17 | 2 | |||||||||||
| 0 | -16 | 8 | 2 | |||||||||||
| 1 | -8 | 4 | 2 | |||||||||||
| 0 | -4 | 2 | 2 | |||||||||||
| 0 | -2 | 1 | ||||||||||||
| 0 | ||||||||||||||
Направление взгляда | ||||||||||||||
Дробная часть числа находится умножением на основание новой системы счисления:
Направление взгляда | |
| 0. | 004150390625*2 |
| 0 | .008301*2 |
| 0 | .0166*2 |
| 0 | .0332*2 |
| 0 | .06641*2 |
| 0 | .1328*2 |
| 0 | .2656*2 |
| 0 | .5313*2 |
| 1 | .063*2 |
| 0 | .125*2 |
| 0 | .25*2 |
В результате преобразования получилось:
Вы указали что размер вашего числа 8 байт.
На данный момент отрицательные дробные числа не поддерживаются. Поэтому в дальнейшем переводе участвует только целая часть числа.
Дополним число недостающими нулями слева