Hệ nhi phân là một hệ mà dùng để mô tả mọi thông tin dưới dạng ký tự là 0 và 1. Và đương nhiên việc tính toán cũng dựa trên hệ nhị phân với cơ số là cơ số 2. Hệ nhị phân là nền tảng cơ bản của việc hình thành và phát triển của công nghệ điện toán.
Tuy nhiên trong quá trình khảo sát các sinh viên - kể cả các sinh viên chuyên ngành công nghệ thông tin hiện nay thì đa phần lại không hiểu và nắm rõ về hệ nhị phân này. Có chăng thì các bạn cũng chỉ dừng lại ở việc "biểu diễn" một con số thập phân trong đời sống hằng ngày thành con số hệ nhị phân và ngược lại mà thôi.
Trong bài viết này nhằm mục đích mô tả lại và nhắc lại kỹ hơn về hệ nhị phân, từ tính toán số học đến cách chuyển tải ngôn ngữ của con người thành ngôn ngữ nhị phân để máy tính có thể hiểu và xử lý.
I. Giá trị các con số trong hệ nhị phân
Hệ nhị phân chỉ có 2 số 0 và 1, tương ứng với 2 trạng thái OFF và ON (Sai và Đúng). Nhị phân đọc từ phải sang trái.
Để giải mã một dãy số nhị phân, ta làm như sau:
Bước 1: Viết số nhị phân thành dãy
Bước 2: Từ phải sang trái, viết số mũ của 2 bên dưới dãy số, lần lượt từ 2^0 cho đến hết
Bước 3: Quy đổi số mũ thành giá trị
Bước 4: Bỏ những giá trị ở số 0, lấy giá trị ở số 1
Bước 5: Cộng các giá trị đã lấy ta sẽ được kết quả chuyển đổi
Ví dụ giải mã dãy số nhị phân 1001001:
Bảng giải mã số nhị phân sang thập phân
Sau bước 4 ta có các giá trị cần lấy là 64, 8, 1, và tổng của chúng là 64 + 8 + 1 = 73. Vậy số nhị phân 1001001 trong hệ thập phân là 73.
Ở bước 4, bỏ đi giá trị ở số 0 là đã làm tắt vì thực chất số thập phân phải là 1*64+0*32+0*16+1*8+0*4+0*2+1*1=73, nhưng vì 0 nhân với số nào cũng bằng 0, nên mình bỏ cho đỡ rối.
II. Tính toán các con số trong hệ nhị phân
# Cộng hai số nhị phân
Nguyên tắc cơ bản để cộng hai số nhị phân như sau:
0+0 = 0
1+0 = 1
0+1 = 1
1+1 = 10 (Nhớ 1, giống như trong phép cộng thập phân)
Ví dụ với hướng dẫn chi tiết:
Ta áp dụng nguyên tắc trên để cộng hai số: 0111 + 1110
- Ta cộng từ phải qua trái, 1+0 = 1
- Tiếp tục 1+1 = 10, ghi 0, nhớ 1.
- Tiếp tục 1+1 = 10, cộng với 1 nhớ thành 11, ghi 1, nhớ 1.
- Tiếp tục cộng cho đến hết, ta được kết quả 0111 + 1110 = 10101
Ví dụ khác: 71 + 31
Bạn có thể kiểm tra lại kết quả bằng cách đổi 1000111_2 và số 11110_2 sang số thập phân (Ví dụ sau khi đổi ta được 71 + 30 = 101)
# Trừ hai số nhị phân
Để trừ 2 số nhị phân, ta thực hiện theo nguyên tắc sau:
0 − 1 = 1 (mượn 1)
1 − 0 = 1
1 − 1 = 0
# Nhân hai số nhị phân
Phép tính nhân trong hệ nhị phân cũng tương tự như phương pháp làm trong hệ thập phân. Hai số A và B được nhân với nhau bởi những tích số cục bộ: với mỗi con số ở B, tích của nó với số một con số trong A được tính và viết xuống một hàng mới, mỗi hàng mới phải chuyển dịch vị trí sang bên trái, hầu cho con số cuối cùng ở bên phải đứng cùng cột với vị trí của con số ở trong B đang dùng. Tổng của các tích cục bộ này cho ta kết quả tích số cuối cùng.
Vì chỉ có hai con số trong hệ nhị phân, nên chỉ có 2 kết quả khả quan trong tích cục bộ:
# Chia hai số nhị phân
Phép chia nhị phân cũng tương tự như phép chia trong hệ thập phân. Do đó bạn cần nắm vững cách chia trên số thập phân, đồng thời cần nắm vững cách trừ 2 số nhị phân.
III. Chuyển tải ngôn ngữ của con người thành ngôn ngữ nhị phân
Nói đến việc chuyển tải ngôn ngữ của con người thành ngôn ngữ nhị phân thì không thể không nhắc đến bảng mã ASCII và chúng ta có thể xem bản mã ASCII cơ bản và mã ASCII mở rộng tại đây https://vi.wikipedia.org/wiki/ASCII
Ví dụ:
Chuyển câu dưới đây:
Châu ehoadon rất đẹp trai, và còn rất dễ thương nữa! Sinh năm 2021
thành ngôn ngữ của hệ nhi phân sẽ là:
01000011 01101000 11000011 10100010 01110101 00100000 01100101 01101000 01101111 01100001 01100100 01101111 01101110 00100000 01110010 11100001 10111010 10100101 01110100 00100000 11000100 10010001 11100001 10111010 10111001 01110000 00100000 01110100 01110010 01100001 01101001 00101100 00100000 01110110 11000011 10100000 00100000 01100011 11000011 10110010 01101110 00100000 01110010 11100001 10111010 10100101 01110100 00100000 01100100 11100001 10111011 10000101 00100000 01110100 01101000 11000110 10110000 11000110 10100001 01101110 01100111 00100000 01101110 11100001 10111011 10101111 01100001 00100001 00100000 01010011 01101001 01101110 01101000 00100000 01101110 11000100 10000011 01101101 00100000 00110010 00110000 00110010 00110001
Bạn có thể kiểm tra việc mình tự thực hiện chuyển đổi ngôn ngữ bằng cách tham khảo tại đây nhé!