Что такое байт? - PullRequest
       59

Что такое байт?

0 голосов
/ 20 января 2019

C стандарт использует слово байт во многих разных местах. По большей части это что-то очень похожее на мое понимание этого слова - кусок данных длиной 8 битов.

Но:

Оператор sizeof возвращает размер (в байтах) своего операнда

И

Когда sizeof применяется к операнду с типом char, unsigned char или подписанный char (или его квалифицированная версия) результат 1

Позже:

При применении к операнду с типом массива, результатом является общее количество байтов в массиве.

Таким образом, если мы рассмотрим машину с char, имеющую более 8 бит, наблюдаемое поведение этой программы будет отличаться от 8-битового символа.

char foo[5];

for(size_t index = 0; index < sizeof(foo) / sizeof(char); index++)
{
    /* some code */
}

Так что, возможно, значение байта отличается в понимании стандарта C. Может ли кто-нибудь объяснить: это байт 8 бит или байт это что-то другое

И еще один вопрос.

это sizeof(char) == sizeof(array[0])? С учетом различий в байтах

1 Ответ

0 голосов
/ 20 января 2019

3.Термины, определения и символы

3,6 байт адресуемая единица хранения данных, достаточно большая, чтобы вместить любой элемент базового набора символов среды выполнения

ПРИМЕЧАНИЕ 1. Можно однозначно выразить адрес каждого отдельного байта объекта.

ПРИМЕЧАНИЕ 2 Байт состоит из непрерывной последовательности битов, число которых определяется реализацией,Младший значащий бит называется младшим битом;старший бит называется старшим битом.

Это байт в соответствии со стандартом C.Его минимальный размер - это просто количество битов, необходимых для хранения базового набора символов среды выполнения, то есть минимум 8 в настоящее время IIRC.Точный размер байта в битах закодирован в макросе CHAR_BIT.

...