Mỗi hàng bên trái gấp đôi hàng bên phải
Hệ nhị phân chỉ dùng chữ số `0` và `1`. Từ phải sang trái, các hàng có giá trị **1, 2, 4, 8, 16, ...**. Chữ số `1` lấy giá trị của hàng; chữ số `0` bỏ qua hàng đó.
Ví dụ $10011_2=1\times16+0\times8+0\times4+1\times2+1\times1=19_{10}$. Chỉ số dưới cho biết **hệ đếm**, tránh nhầm `10011` là mười nghìn không trăm mười một.
Bài luyện
$10110_2$ bằng bao nhiêu trong hệ thập phân?
Thiếu hàng 4.
$16+4+2=22$.
Đã cộng thêm một hàng không có bit 1.
Đọc dãy bit như số hệ 10.
Lời giải
Các bit 1 nằm ở hàng 16, 4 và 2. Cộng lại được $16+4+2=22$, nên $10110_2=22_{10}$.
Đổi hệ 10 sang hệ 2 bằng chia lấy dư
Đổi $37_{10}$: chia 37 cho 2 được 18 dư **1**; 18 cho 2 được 9 dư **0**; 9 cho 2 được 4 dư **1**; 4 cho 2 được 2 dư **0**; 2 cho 2 được 1 dư **0**; 1 cho 2 được 0 dư **1**. Đọc số dư **từ dưới lên**: $37_{10}=100101_2$.
Kiểm ngược: $32+4+1=37$. Số $0$ có biểu diễn `0`; không có bước chia tiếp. Bài này đổi **số nguyên không âm**, chưa đổi phần lẻ.
Bài luyện
$13_{10}$ đổi sang hệ nhị phân bằng kết quả nào?
$1011_2=8+2+1=11$.
$1110_2=8+4+2=14$.
$1101_2=8+4+1=13$.
$1001_2=8+1=9$.
Lời giải
$13=8+4+1=1\times8+1\times4+0\times2+1\times1$. Vậy dãy bit là $1101_2$.
Dãy bit cần quy tắc diễn giải
Với **số nguyên không dấu**, một byte `00010011` có giá trị 19. Nếu chọn một cách biểu diễn **số nguyên có dấu**, cách hiểu dãy bit phải tuân theo quy tắc của cách đó; số âm có nhiều cách mã hóa như mã dấu–lượng, mã bù 1 và mã bù 2. Không thể nhìn một dãy 8 bit bất kỳ rồi tự kết luận giá trị âm hay dương khi chưa biết kiểu biểu diễn. Phần này chỉ cần nhận biết sự khác nhau, chưa cần tự lập mã bù.
Bài luyện
Một tệp chỉ ghi dãy bit `11101101` mà không cho biết kiểu số. Kết luận nào chắc chắn đúng?
−19 là kết quả theo một quy tắc 8 bit cụ thể, không phải mọi quy tắc.
237 là cách đọc không dấu, chưa chắc là kiểu được dùng.
Dãy bit còn có thể mang loại dữ liệu khác.
Cùng dãy bit có thể được giải thích khác nhau.
Lời giải
Nếu đọc như số nguyên **không dấu**, dãy này là 237; theo mã bù 2 8 bit, nó là −19. Chưa có kiểu biểu diễn thì không thể chọn một giá trị duy nhất.
Đang học