Перевод чисел в различные системы счисления
Рассмотрим пример перевода числа 10101001.01 из троичной в двоичную систему счисления в однобайтовое в беззнаковое
Выполним перевод в десятичную систему счисления вот так:
= 1∙2187 + 0∙729 + 1∙243 + 0∙81 + 1∙27 + 0∙9 + 0∙3 + 1∙1 + 0∙0.33333333333333 + 1∙0.11111111111111
= 2187 + 0 + 243 + 0 + 27 + 0 + 0 + 1 + 0 + 0.11111111111111
= 2458.1111111111111110
Получилось: 10101001.013 = 2458.1111111111111110
Переведем число 2458.1111111111111110 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 2458 | 2 | ||||||||||||
| -2458 | 1229 | 2 | |||||||||||
| 0 | -1228 | 614 | 2 | ||||||||||
| 1 | -614 | 307 | 2 | ||||||||||
| 0 | -306 | 153 | 2 | ||||||||||
| 1 | -152 | 76 | 2 | ||||||||||
| 1 | -76 | 38 | 2 | ||||||||||
| 0 | -38 | 19 | 2 | ||||||||||
| 0 | -18 | 9 | 2 | ||||||||||
| 1 | -8 | 4 | 2 | ||||||||||
| 1 | -4 | 2 | 2 | ||||||||||
| 0 | -2 | 1 | |||||||||||
| 0 | |||||||||||||
Направление взгляда | |||||||||||||
Дробная часть числа находится умножением на основание новой системы счисления:
Направление взгляда | |
| 0. | 11111111111111*2 |
| 0 | .2222*2 |
| 0 | .4444*2 |
| 0 | .8889*2 |
| 1 | .778*2 |
| 1 | .556*2 |
| 1 | .111*2 |
| 0 | .2222*2 |
| 0 | .4444*2 |
| 0 | .8889*2 |
| 1 | .778*2 |
В результате преобразования получилось:
Вы указали что размер вашего числа 1 байт.
На данный момент отрицательные дробные числа не поддерживаются. Поэтому в дальнейшем переводе участвует только целая часть числа.
Уберем лишние биты с учётом знакового бита вот так: