Мы вызываем первый бит в байте 1 или 0? - PullRequest
7 голосов
/ 21 января 2012

Для этого примера я создаю целое число.

int example = 0;

Теперь, скажем, я хочу знать, каков первый бит этого целого числа.Я знаю, что это будет в позиции бита 0. Но я бы назвал это битом 1 или 0. Причина, которую я спрашиваю, состоит в том, что я видел документацию, где первый бит целого числа помечен как бит 0, а затем позже помечен как бит 1.Я знаю, что это ошибка с их стороны, просто любопытно, что я должен называть это.

Ответы [ 2 ]

10 голосов
/ 21 января 2012

Большую часть времени бит младшего разряда называется битом 0.

Однако, это действительно зависит от контекста, в котором вы его просите. Я работал над двумя разными (взаимосвязанными) системами, когда одна документация называла это битом 1, а другая - битом 0. Поговорим о путанице! Важно всегда что-то квалифицировать, если вы это документируете.

Как правило, это называется "-индексированный". Таким образом, если бит самого младшего разряда называется «бит ноль», тогда битовое поле «индексируется нулем».

Лично я всегда называю бит самого младшего разряда нулевым битом. С этим соглашением вы можете сдвинуть 1 n мест, чтобы включить n th бит:

x = 1<<0;    00000001b  (bit 0 is on)
x = 1<<4;    00010000b  (bit 4 is on)
4 голосов
/ 21 января 2012

Если вы идете просто по степеням двух, 2 ** 0 равно 1. Более разумно нумеровать биты, начиная с 0.

...