2012-01-21 3 views
6

В этом примере я создаю целое число.Вызов первого бита в бит-бит 1 или 0?

int example = 0; 

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

+2

Шутка ответа: если массивы на вашем языке выбора начинаются с индекса 1, то это 1-й бит, в противном случае это 0-й бит. – Charles

+0

Назовите это, как хотите, но просто документируйте, что такое ваша конвенция. –

+0

Иногда люди также указывают биты в противоположном направлении, поэтому * самый * значащий бит равен 0 или 1. Документируйте свое соглашение и придерживайтесь его. –

ответ

8

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

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

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

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

x = 1<<0; 00000001b (bit 0 is on) 
x = 1<<4; 00010000b (bit 4 is on) 
+0

Благодарим вас за пример. Имеет смысл иметь выстроенные биты при выполнении операций на уровне бит. –

2

Если вы идете просто по степеням двойки, 2 ** 0 равен 1. Это имеет смысл сосчитай бит, начинающийся с 0.

Смежные вопросы