fbpx

Колко бита е един байт и колко байта е типът char в езика C

Отговорът е: един байт е 8 бита, а променлива от char е един байт, но със знак т.е също е 8 бита. Да, но не във всички случай.

Колко бита е един байт?

8 бита? Верният отговор е – “зависи”.

За да разберем защо това е така, преди това трябва да си отговорим на друг въпрос …

Какво е байт?

Bits and Bytes

Байтът е единица цифрова информация, която най-често се състои от осем бита. В исторически план байтът е броят на битовете, ползвани за кодиране на един символ на текст в даден компютър и поради тази причина той е най-малката адресируема единица памет в много компютърни архитектури.

В миналото, размерът на байта е бил зависим от хардуера и не са съществували стриктни стандарти, които да налагат размера. Използвани са размери от 1 до 48 бита.

Няколко примера:

  • Има компютри с 4-битова архитектура, които определят байт с размер 4 бита.
DEC PDP-10

В днешно време е прието, че в повечето случаи, един байт се състои от 8 бита.

Реф.: https://en.wikipedia.org/wiki/Byte

За да се избегне двусмислието на термина байт се е появил термин, който изрично определя размера си от 8 бита – октет.

Какво е октет?

Biphase Mark Code

Октетът е единица цифрова информация в изчислителната и телекомуникационната техника, която се състои от осем бита. Терминът често се използва, когато терминът байт може да бъде двусмислен, когато става дума за размера му в битове.

В терминологията на Интернет протоколите се използва предимно думата октет.

Реф.: https://en.wikipedia.org/wiki/Octet_(computing)

Какъв е размер на типът char в езика C

8 бита? Верният отговор е – “зависи”.

За да разберем защо това е така, преди това трябва да си отговорим на друг въпрос …

Какво е char?

Един char е най-малката адресируема единица на машината, която може да съдържа основен набор от символи. Това е цяло число. Действителният тип може да бъде със знак или без знак.

Реф.: https://en.wikipedia.org/wiki/Character_(computing)

Какво значи това?

Ако най-малката по размер клетка от паметта, която микропроцесора може да адресира е 8 бита, то тогава chat ще е също 8 бита. Това е архитектурата с която повечето от нас са свикнали. Ако микропроцесора обаче адресира клетките от паметта по 16-бита, т.е. на определен адрес можем да прочетем 16 бита, а на следващия адрес други 16 бита (има такива архитектури) то тогава char ще е 16 бита.

За да сме сигурни колко бита е един байт трябва да проверяваме дефиницията CHAR_BIT.

DSP Texas Instruments TMS320C55x

Реф.: https://en.wikipedia.org/wiki/C_data_types

Стандарта POSIX определя изрично, че размера на char е точно 8 бита.

Пример за 16 битов char: DSP процесорите на Texas Instruments от серията TMS320C55x работят с 16-битова памет, т.е. Четенето от определен адрес дава 16-бита данни. По тази причина char е с размер 16 бита. Реф.: “TMS320C55x Optimizing C/C++ Compiler”, https://www.ti.com/lit/ug/spru281g/spru281g.pdf

Колко бита е един байт и колко байта е типът char в езика C?

За най-популярните микропроцесорни архитектури в днешно време можем спокойно да приемем, че размера на един байт е 8 бита и размера на типа char в езика c е 1 байт, но не трябва да забравяме, че това не е така във всички случаи.

Реф.: https://en.wikipedia.org/wiki/Word_(computer_architecture)

Вашият коментар

Добавено в картата
0 продукта - 0.00лв.