Професионална програма
Loading...
ardy11 avatar ardy11 0 Точки

Относно упражнението за конвертиране на символите на нашето име в двоичен код

Здравейте! Бих искал да попитам, защо след като извърших конвертирането и получих двоичните числа, от символите на моето собствено име, след направената проверка на посочения линк за сверяване на решението, не ми излиза, че съм ги направил правилно? 

Името ми е Radi, а ето и начина по който процедирах: 

82 97 100 105

82/2 = 41 (0)                97/2 = 48 (1)                100/2 = 50 (0)
41/2 = 20 (1)                48/2 = 24 (0)                50/2 = 25 (0)
20/2 = 10 (0)                24/2 = 12 (0)                25/2 = 12 (1)
10/2 = 5 (0)                  12/2 = 6 (0)          12/2 = 6 (0)
5/2 = 2 (1)                    6/2 = 3 (0)             6/2 = 3 (0)
2/2 = 1 (0)                    3/2 = 1 (1)             3/2 = 1 (1)
1/2 = 0 (1)                    1/2 = 0 (1)             1/2 = 0 (1)

 

105/2 = 52 (1)
52/2 = 26 (0)
26/2 = 13 (0)
13/2 = 6 (1)
6/2 = 3 (0)
3/2 = 1 (1)
1/2 = 0 (1)

1010010 1100001 1100100 1101001

След като в посочения линк въведох името си по обратния начин (text to bin numbers) на латиница т.е Radi, резултатът беше:
01010010 01100001 01100100 01101001 , или казано другояче същия като моят, но с една нула пред всяка двоична стойност.
Та всъщност конкретния ми въпрос е откъде идва тази нула, след като при приключване на деленето не фигурира и какво съм сбъркал?

0
Programming Basics
remote87 avatar remote87 121 Точки

Здравей!

Допълнителната нула ти допълва битовете до един байт. Един байт има 8 бита или иначе казано 8 единици и нули една до друга. Когато в случая имаш само седем такива долепени числа ( в случая са ти 7 на брой по твоите сметки ), компютъра ти долепя една 0 за да допълни байта до 8 на брой.

Ако ползваш тип лонг ( long ) ще ти допълни с още много нулички до края на 64 битовото число ( затова се нарича и 64 битово ) като там има и малка особеност, че ако е long имаш 63 бита и един бит за знака ( плюс или минус ), ако е ulong ( от 0 до много дълго число ) е 64 бита :)

EDIT: Пример от книгата на Наков:

Ще покажем пример при еднобайтово и двубайтово представяне на числото 158, което се записва в двоичен вид като10011110(2):

1. Представяне с 1 байт:

1

0

0

1

1

1

1

0

2. Представяне с 2 байта:

0

0

0

0

0

0

0

0

1

0

0

1

1

1

1

0

 

2
15/09/2015 15:42:27
ardy11 avatar ardy11 0 Точки

Благодаря ти, много.

0