2012-01-21 28 views
6

Ví dụ này, tôi tạo một số nguyên.Chúng ta có gọi bit đầu tiên trong bit byte 1 hoặc 0 không?

int example = 0; 

Bây giờ, giả sử tôi muốn biết bit đầu tiên của số nguyên này là gì. Tôi biết nó sẽ ở vị trí bit 0. Nhưng tôi sẽ gọi nó là bit 1 hoặc 0. Lý do tôi hỏi là vì tôi đã thấy tài liệu trong đó bit đầu tiên của một số nguyên được dán nhãn là bit 0 và sau đó được gán nhãn là bit 1. Tôi biết đó là một sai lầm về kết thúc của họ, chỉ tò mò như những gì tôi nên được đề cập đến nó như là.

+2

Câu trả lời câu hỏi: Nếu mảng trong ngôn ngữ bạn chọn bắt đầu ở chỉ mục 1, thì đó là bit thứ nhất, nếu không thì đó là bit thứ 0. – Charles

+0

Gọi nó là bất cứ điều gì bạn muốn, nhưng chỉ cần ghi lại quy ước của bạn là gì. –

+0

Đôi khi, số bit của con người theo hướng ngược lại, do đó, bit * quan trọng nhất là 0 hoặc 1. Ghi lại quy ước của bạn và gắn bó với nó. –

Trả lời

8

Hầu hết thời gian, các bit thấp nhất theo đơn đặt hàng được gọi là chút 0.

Tuy nhiên, nó thực sự phụ thuộc vào bối cảnh mà bạn yêu cầu nó. Tôi đã làm việc trên hai hệ thống khác nhau (kết nối với nhau), khi tài liệu của một người gọi nó là bit 1, và cái kia gọi là bit 0. Nói về việc khó hiểu! Điều quan trọng là luôn luôn hội đủ điều kiện nếu bạn ghi lại nó.

Thông thường, điều này được gọi là "-indexed". Vì vậy, nếu bit thứ tự thấp nhất được gọi là "bit zero" thì bitfield là "zero-indexed".

Cá nhân, tôi luôn tham khảo bit đặt hàng thấp nhất dưới dạng bit bằng không. Với quy ước này, bạn có thể thay đổi một 1 n nơi, để bật bit thứ n:

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

Cảm ơn bạn đặc biệt là ví dụ. Làm cho tinh thần để có bit xếp hàng trong khi làm các hoạt động cấp bit. –

2

Nếu bạn đi chỉ đơn giản bằng quyền hạn của hai, 2 ** 0 là 1. Nó làm cho ý nghĩa hơn để đánh số các bit bắt đầu từ 0.

Các vấn đề liên quan