Перевод чисел в различные системы счисления
Рассмотрим пример перевода числа 46.3125 из шестнадцатиричной в двоичную систему счисления в двубайтовое в беззнаковое
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
= 4∙16 + 6∙1 + 3∙0.0625 + 1∙0.00390625 + 2∙0.000244140625 + 5∙1.52587890625E-5
= 64 + 6 + 0.1875 + 0.00390625 + 0.00048828125 + 7.62939453125E-5
= 70.1919708251953110
Получилось: 46.312516 = 70.1919708251953110
Переведем число 70.1919708251953110 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 70 | 2 | |||||||
| -70 | 35 | 2 | ||||||
| 0 | -34 | 17 | 2 | |||||
| 1 | -16 | 8 | 2 | |||||
| 1 | -8 | 4 | 2 | |||||
| 0 | -4 | 2 | 2 | |||||
| 0 | -2 | 1 | ||||||
| 0 | ||||||||
Направление взгляда | ||||||||
Дробная часть числа находится умножением на основание новой системы счисления:
Направление взгляда | |
| 0. | 19197082519531*2 |
| 0 | .3839*2 |
| 0 | .7679*2 |
| 1 | .536*2 |
| 1 | .072*2 |
| 0 | .1431*2 |
| 0 | .2861*2 |
| 0 | .5723*2 |
| 1 | .145*2 |
| 0 | .2891*2 |
| 0 | .5781*2 |
В результате преобразования получилось:
Вы указали что размер вашего числа 2 байт.
На данный момент отрицательные дробные числа не поддерживаются. Поэтому в дальнейшем переводе участвует только целая часть числа.
Дополним число недостающими нулями слева