Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Với những người học và làm việc trong ngành Công nghệ thông tin thì hệ cơ số 16 chắc không phải xa lạ gì. Ngay từ khi học các môn cơ sở trên trường, hoặc là trong quá trình tìm hiểu trên mạng, chúng ta đã được giới thiệu về khái niệm Hệ đếm và 4 hệ đếm cơ bản:

  • Hệ thập phân (Decimal)
  • Hệ nhị phân (Binary)
  • Hệ bát phân (Octal)
  • Hệ thập lục phân (Hexadecimal)

Trong 4 hệ đếm cơ bản kia thì hệ thập phân là thường gặp nhất, đây là hệ cơ số chúng ta thường dùng trong tính toán. Tiếp theo là hệ nhị phân thì cũng thấy nhiều vì đây là hệ cơ số máy tính sử dụng.
Nằm giữa 2 hệ cơ số đó là Hex. Việc "nằm giữa" này cũng là cái cảm nhận của cá nhân mình thôi. Nhưng chắc chắn là công dụng và sự phổ biến của Hex cũng không kém cạnh gì Dec và Bin.

Chúng ta có thể thấy Hex ở đâu ?

Điểm qua một số tác dụng của Hex:

  • Để hiển thị màu trên web, chúng ta biểu diễn mã màu #RRGGBB dưới dạng Hex.
  • Để xác định địa chỉ trong bộ nhớ, chúng ta sử dụng 8 ký tự Hexa với 32bit OS (12 ký tự Hex với 64bit OS).
  • Địa chỉ MAC của các thiết bị mạng được tạo thành từ 12 ký tự Hex.
  • Hiển thị thông báo lỗi: địa chỉ ô nhớ xảy ra lỗi được biểu diễn dưới dạng hexa, giúp lập trình viên dễ dàng hơn trong việc tìm và sửa lỗi.
  • Sử dụng trong mã hóa.

Và còn nhiều nữa ...
Nếu bạn code Assembly và chơi CTF mảng RE thì sẽ phải làm việc với hex rất nhiều.

Tại sao Hex lại được sử dụng nhiều như vậy ?

Như mình đã nói ở trên thì Hex "nằm giữa" Dec và Bin. Tại sao lại nói như vậy ?
Vì Dec dễ sử dụng hơn với con người, còn máy tính thì chỉ hiểu Bin. Hex thì thân thiện với con người hơn Bin. Đọc, viết và sử dụng Hex trong tính toán thì tiện hơn so với Bin, nhưng vẫn không bằng sử dụng Dec.

Tuy Dec dễ sử dụng nhưng để chuyển đổi Bin -> Dec thì không tiện như chuyển đổi từ Bin -> Hex. Việc dễ dàng chuyển đổi Bin <==> Hex là ưu điểm đầu tiên khiến Hex được sử dụng nhiều.
Vì 2^4 = 16 nên mỗi 4 bit đều có thể được biểu diễn bằng 1 ký tự Hex, 1 byte được biểu diễn bằng 2 ký tự Hex. Điều này là cố định, trong khi với Dec thì không như vậy.

Ưu điểm thứ hai là chúng ta có thể biểu diễn 1 số nguyên lớn dưới dạng Hex với số lượng ký tự cần sử dụng là rất ít. Không gian (số lượng ký tự) cần sử dụng để biểu diễn giá trị dưới dạng Hex ít hơn 4 lần so với khi biểu diễn dưới dạng Bin. Con số này ít hơn khi đem Hex so sánh với Dec, nhưng vẫn là một ưu điểm mà Hex vượt trội hơn so với Dec và Bin.

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán
Nhìn vào biểu đồ trên, dễ thấy rằng cần phải thêm 1 chữ số nữa để biểu diễn giá trị khi đạt các mốc:

  • Dec: 10, 100, 1000, ....
  • Bin: 2, 8, 16, 32, 64, 128, 256, ....
  • Hex: 16, 256, ....

=> Các hệ cơ số thuộc tập hợp sau là thích hợp để biểu diễn thay thế cho Bin:

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Tại sao không sử dụng các hệ cơ số lớn hơn ?

Qua những lý do vừa đề cập, chúng ta dễ dàng nhận ra rằng: khi sử dụng hệ cơ số X để biểu diễn giá trị, với X thuộc tập hợp F thì X càng lớn sẽ càng tiết kiệm không gian hơn trong khi vẫn đảm bảo dễ dàng chuyển đổi Base 2 <==> Base X.

Thế thì tại sao vẫn là Base 16 mà không sử dụng Base 128, Base 256 ?

Câu trả lời nằm ở số lượng ký tự dùng để biểu diễn. Hex sử dụng 16 ký tự 0-9A-F.
Base n thì cần sử dụng n ký tự khác nhau để biểu diễn giá trị. Trong bảng ASCII chỉ có 128 ký tự, và một số ký tự không hiển thị được. Như vậy nếu không sử dụng Hex thì chỉ có thể sử dụng các hệ cơ số sau: 8, 32 và 64

1 ký tự Oct biểu diễn 3 bit Bin. 1 ký tự B32 biểu diễn 5 bit Bin.

1 ký tự B64 biểu diễn 6 bit Bin.

Tất cả chính hệ thống đánh số chúng tôi sử dụng là những vị trí quan trọng , theo nghĩa là giá trị của số được xác định bởi nơi nó được đặt. Chúng tôi gọi đây là giá trị địa điểm (đơn vị, hàng chục, hàng trăm) và nó giúp xác định độ lớn của số. Ví dụ: hệ thống thập phân mà tất cả chúng ta đều quen thuộc nhất cho biết giá trị của một 2 2 đối với vị trí của nó là bao nhiêu, vì 20 không giống như 200 vì nó là XNUMX.

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Giá trị của số

Nhưng điều này không phải lúc nào cũng đúng. Cách biểu diễn giá trị này tương đối hiện đại và yêu cầu sử dụng số không làm chỗ giữ chỗ. Đây là lý do tại sao các hệ thống số cũ hơn như Chữ số La Mã hoặc chữ tượng hình Ai Cập không sử dụng giá trị địa điểm này, nhưng thêm tất cả các chữ số để có được tổng giá trị.

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Sử dụng khái niệm giá trị địa điểm cơ bản này, chúng tôi đã tạo ra các hệ thống đánh số hoặc cách khác nhau để viết số. Chúng được đặt tên theo số lượng gia tăng trên mỗi địa điểm, nghĩa là bạn có thể tăng giá trị của một địa điểm bao nhiêu lần trước khi bạn phải chuyển Di chuyển sang vị trí tiếp theo. Ví dụ: trên cơ sở thập phân, chúng ta có thể tăng vị trí của các đơn vị chín lần với 10 chữ số khác nhau (đếm số không) trước khi chuyển từ đơn vị lên hàng chục.

Tại sao PC sử dụng hệ thống nhị phân

Khi còn nhỏ, chúng ta được dạy đếm trên đầu ngón tay: mười ngón, mười số. Để đếm hơn mười, bạn giữ một ngón tay trong khi bạn đếm những người khác và đây là hệ thống 10 hoặc thập phân cơ bản, hệ thống chúng tôi sử dụng hàng ngày cho thực tế mọi thứ.

Tuy nhiên, PC không thể sử dụng cơ sở 10, kể từ khi phần cứng chúng ta cần cho nó sẽ cực kỳ phức tạp . Vì lý do này, PC sử dụng hệ thống nhị phân (hoặc cơ sở hai) chỉ có hai giá trị (số một và số không) để đếm, vì, như bạn biết, bộ xử lý được chế tạo với bóng bán dẫn bên trong không có gì khác hơn là các công tắc nhỏ cho phép đi qua hoặc chúng không cho điện đi qua, do đó đại diện cho các công tắc và số không tương ứng.

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Nói cách khác, PC không có khả năng đếm thập phân hoặc thập lục phân, vì các mạch của chúng chỉ có thể đại diện cho hai trạng thái: bật và tắt, BẬT và TẮT, các trạng thái và số không. Do đó, điều tự nhiên nhất là ngôn ngữ của nó là một ngôn ngữ nhị phân, bao gồm các số và số XNUMX, và theo nghĩa đen, mỗi bit dữ liệu mà PC quản lý không là gì ngoài một chuỗi các số và số không.

Nhiều người sẽ nói rằng PC cũng quản lý dữ liệu trong một thập lục phân và nó thực sự là một trường hợp có một chút về cạnh. Nó được sử dụng như một phương tiện biểu diễn các giá trị nhị phân để con người hiểu được: một giá trị vị trí duy nhất trong hệ thập lục phân đại diện cho bốn bit bộ nhớ, hai vị trí là tám bit hoặc một byte.

Đó là lý do tại sao bạn sẽ thấy rằng thập lục phân được sử dụng để thể hiện giá trị của các thanh ghi bộ nhớ , vì nó dễ đọc hơn các chuỗi lớn và số không, nhưng ở phía dưới, chúng vẫn là dữ liệu nhị phân.

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Chắc chắn, sẽ thuận tiện nhất nếu chúng ta có thể sử dụng một hệ thống đánh số thống nhất cho mọi thứ, nhưng thật không may, mỗi hệ thống đánh số có mục đích riêng của nó, vì vậy chúng tôi bị kết án sử dụng nhiều hơn một và trong trường hợp máy tính, đây là hệ nhị phân.

Số nhị phân là gì trong máy tính? số 0 và 1 trong tin học là gì? Ứng dụng hệ thống mã nhị phân Binary. Hướng dẫn chuyển đổi nhị phân sang thập phân, thập phân sang nhị phân kèm ví dụ minh họa.

Số nhị phân là gì?

Số nhị phân được viết dưới dạng số 0 và số 1. Số nhị phân chỉ được tạo thành từ 0 và 1.

Ví dụ về số nhị phân: 101001

Không có 2, 3, 4, 5, 6, 7, 8 hoặc 9 trong hệ thống số nhị phân Binary.

Hệ thống số nhị phân

Hệ thống số nhị phân, trong toán học, hệ thống số vị trí sử dụng 2 làm cơ số, do đó chỉ yêu cầu hai ký hiệu khác nhau cho các chữ số của nó, 0 và 1, thay vì 10 ký hiệu khác nhau thông thường cần thiết trong hệ số thập phân. Do đó, các số từ 0 đến 10 ở dạng nhị phân 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001 và 1010.

Tầm quan trọng của hệ nhị phân đối với lý thuyết thông tin và công nghệ máy tính chủ yếu bắt nguồn từ sự nhỏ gọn và cách thức đáng tin cậy trong đó các số 0 và 1 có thể được biểu diễn trong các thiết bị cơ điện với hai trạng thái — chẳng hạn như “bật-tắt”, “mở” hoặc “không hoạt động”.

Đặc điểm của hệ thống số nhị phân

Hệ thống số nhị phân là một loại kỹ thuật biểu diễn số. Nó phổ biến nhất và được sử dụng trong các hệ thống kỹ thuật số. Hệ nhị phân được sử dụng để biểu diễn các đại lượng nhị phân có thể được biểu diễn bằng bất kỳ thiết bị nào chỉ có hai trạng thái hoạt động hoặc các điều kiện có thể. Ví dụ, một công tắc chỉ có hai trạng thái: mở hoặc đóng.

Trong Hệ thống nhị phân, chỉ có hai ký hiệu hoặc giá trị chữ số có thể có, tức là, 0 và 1. Được biểu diễn bởi bất kỳ thiết bị nào chỉ có 2 trạng thái hoạt động hoặc các điều kiện có thể. Số nhị phân được biểu thị bằng cách thêm tiền tố 0b hoặc hậu tố 2.

Vị trí của mọi chữ số có trọng số là lũy thừa của 2. Mỗi vị trí trong hệ nhị phân có ý nghĩa gấp 2 lần so với vị trí trước đó, điều đó có nghĩa là giá trị số của một số nhị phân được xác định bằng cách nhân mỗi chữ số của số đó với giá trị của vị trí mà chữ số xuất hiện và sau đó thêm các sản phẩm. Vì vậy, nó cũng là một hệ thống số vị trí (hoặc trọng số).

Bit quan trọng nhất (MSB)Điểm nhị phânBit quan trọng nhất (LSB)
2 22 12 02 -12 -22 -3
4210,50,250,125

Ví dụ 1: Số 125 được biểu diễn là:

125 = 1x26+1x25+1x24+1x23+1x22+0x21+1x20=1111101

Ở đây, phần lớn bên phải bit 1 là bit ít quan trọng nhất (LSB) và bên trái nhất bit 1 là bit quan trọng nhất (MSB).

Ví dụ 2: Số 90,75 được biểu diễn là:

90.75 = 1x26+0x25+1x24+1x23+0x22+1x21+0x20+1x2-1+1x2-2=1011010.11

Ở đây, phần lớn bên phải bit 1 là bit ít quan trọng nhất (LSB) và bên trái nhất bit 1 là bit quan trọng nhất (MSB).

Ví dụ 3: Một số thập phân 21 để biểu diễn trong nhị phân là:

(21)10 =16+0+4+0+1 = 1x24+0x23+1x22+0x21+1x20 =(10101)2

Ứng dụng của hệ thống số nhị phân

Hệ thống số nhị phân rất hữu ích trong công nghệ máy tính và các ngôn ngữ lập trình máy tính cũng sử dụng hệ thống số nhị phân rất hữu ích trong việc mã hóa kỹ thuật số. Hệ thống số nhị phân cũng có thể được sử dụng trong đại số Boolean.

Dải điện áp từ 0V đến 0.8V được sử dụng cho logic nhị phân 0dải điện áp từ 2V đến 5V được sử dụng cho logic nhị phân 1. Không sử dụng dải điện áp từ 0.8V đến 2V vì nó có thể gây ra lỗi trong mạch kỹ thuật số.

Ưu điểm và nhược điểm của số nhị phân

Ưu điểm chính của việc sử dụng hệ nhị phân là nó là một cơ sở dễ dàng được biểu diễn bằng các thiết bị điện tử. Hệ thống số nhị phân cũng dễ sử dụng trong mã hóa, ít tính toán hơn và ít lỗi tính toán hơn.

Nhược điểm chính của số nhị phân là khó đọc và viết đối với con người vì số lượng lớn nhị phân của một số thập phân tương đương.

Bổ sung số nhị phân (cơ số 2) của 1 và 2

Để nhận phần bù 1 của một số nhị phân, chỉ cần đảo ngược số đã cho. Ví dụ, phần bù 1 của số nhị phân 110010 là 001101.

Phần bù của 2 của số nhị phân là phần bù của 1 của số đã cho cộng với 1 đến bit có ý nghĩa nhỏ nhất (LSB). Ví dụ phần bù 2 của số nhị phân 10010 là (01101) + 1 = 01110.

Cách đổi số thập phân sang nhị phân

Nguyên tắc đổi

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Để đổi một số thập phân sang nhị phân, chúng ta lấy số muốn đổi sang nhị phân chia với 2 và sau đó lấy kết quả chia tiếp tục chia với 2, và lập lại phép chia này cho đến khi ta nhận được kết quả là 0 (từ trên xuống, theo mũi tên màu xanh). Ở phép chia này, ta lấy dư là 0 và 1. Sau khi chia đến kết quả bằng 0, ta sẽ lấy các con số dư ghi lại từ dưới lên (theo chiều mũi tên màu đỏ) ta được dãy số gồm 0 và 1, đây chính là giá trị ta cần tìm (các số dư chỉ là 0 và 1, không được chia kết quả ra phần lẻ, ví dụ như 2,5).

Các ví dụ và bài tập chuyển đổi

Ví dụ 1: Chuyển số 30 sang hệ nhị phân

30/2 = 15 (dư 0) 15/2 = 7 (dư 1) 7/2 = 3 (dư 1) 3/2 = 1 (dư 1) 1/2 = 0 (dư 1) Như vậy, số 30 trong hệ nhị phân sẽ là: 1 1 1 1 0

Giải thích cho ví dụ 1:

  1. Đầu tiên (ở dòng 1), chúng ta lấy 30 chia 2, kết quả được 15 và số dư là 0.
  2. Kế tiếp (ở dòng 2), chúng ta lấy số 15 chia 2, kết quả được 7 và số dư là 1
  3. Tiếp theo ở dòng 3, ta lấy số 7 chia 2, kết quả được 3 và dư 1
  4. Ta tiếp tục lặp lại quá trình này cho đến khi kết quả chia 2 chúng ta được 0.
  5. Số nhị phân chúng ta thu được chính là tập hợp các số dư của các phép chia (lấy từ dưới lên).
  6. Số 30 trong hệ nhị phân sẽ là 11110

Ví dụ 2: Chuyển số 71 sang hệ nhị phân

71/2 = 35 (dư 1) 35/2 = 17 (dư 1) 17/2 = 8 (dư 1) 8/2 = 4 (dư 0) 4/2 = 2 (dư 0) 2/2 = 1 (dư 0) 1/2 = 0 (dư 1) Như vậy, số 71 trong hệ nhị phân sẽ là: 1 0 0 0 1 1 1

Giải thích cho ví dụ 2:

  1. Đầu tiên (ở dòng 1), chúng ta lấy 71 chia 2, kết quả được 35 và số dư là 1.
  2. Kế tiếp (ở dòng 2), chúng ta lấy số 35 chia 2, kết quả được 17 và số dư là 1
  3. Tiếp theo ở dòng 3, ta lấy số 17 chia 2, kết quả được 8 và dư 1
  4. Ta tiếp tục lặp lại quá trình này cho đến khi kết quả chia 2 chúng ta được 0.
  5. Số nhị phân chúng ta thu được chính là tập hợp các số dư của các phép chia (lấy từ dưới lên).
  6. Số 71 trong hệ nhị phân sẽ là 1000111

Đối với phần lẻ của số thập phân, số lẻ được nhân với 2. Phần nguyên của kết quả sẽ là bit nhị phân, phần lẻ của kết quả lại tiếp tục nhân 2 cho đến khi phần lẻ của kết quả bằng 0.

Ví dụ 3: Chuyển phần lẻ 0.62510 sang hệ nhị phân

  • 0.625 x 2 = 1.25, lấy số 1, phần lẻ 0.25
  • 0.25 x 2 = 0.5, lấy số 0, phần lẻ 0.5
  • 0.5 x 2 = 1.0, lấy số 1, phần lẻ 0. Kết thúc phép chuyển đổi.

Vậy kết quả 0.62510=0.1012

Ví dụ 4: đổi phần lẻ 9.62510 sang hệ nhị phân

  • Phần nguyên 9 đổi sang hệ nhị phân là 1001
  • Phần lẻ 0.625 đổi sang hệ nhị phân là 0.101

Vậy số 9.62510=1001.1012

Cách đổi số nhị phân sang thập phân

Nguyên tắc đổi

Tại sao máy tính lại dụng hệ nhị phân làm cơ số cho tính toán

Để đổi giá trị Nhị phân ra thành Thập phân, ta lấy dãy số Nhị phân cần chuyển, nhân lần lượt các phần tử của chúng bắt đầu từ phần tử cuối (theo chiều mũi tên màu đỏ) với 20 cho đến 2n-1 (với n là số phần tử của dãy số), sau đó, chúng ta tiến hành cộng các giá trị tìm được từ phép nhân, ta sẽ được kết quả một con số dưới dạng Thập phân.

Các ví dụ và bài tập chuyển đổi

Ví dụ 1: Chuyển số 1000111 về số thập phân:

Ta thấy số 1000111 có tổng cộng 7 kí tự, chúng ta sẽ đánh số 7 kí tự này từ phải sang trái và bắt đầu từ 0 như sau:

Số nhị phân1000111
Thứ tự6543210

Kết quả Số thập phân sẽ là: “tổng các tích của kí tự nhị phân x 2 lũy thừa vị trí”.

Tức là 1×26 + 0x25 + 0x24 + 0x23 + 1×22 + 1×21 + 1×20

= 64 + 0 + 0 + 0 + 4 + 2 + 1 = 71

Ví dụ 2: Chuyển số 11110 sang hệ thập phân:

Tương tự các bước phân tích ở ví dụ 1, chúng ta cần lập bảng chuyển đổi trực quan như sau:

Số nhị phân11110
Thứ tự43210

Số 11110 chuyển sang số nhị phân sẽ là 1×24 + 1×23 + 1×22 + 1×21 + 0x20

= 16 + 8 + 4 + 2 + 0 = 30

Cộng số nhị phân

Nguyên tắc cộng 2 số nhị phân

0 + 0 = 0

1 + 0 = 1

0 + 1 = 1

1 + 1 = 10 (nhớ 1 để cộng vào hàng trước nó, tương tự như phép cộng số thập phân)

Ví dụ áp dụng

Cộng hai số 1000111 (số 71 trong hệ thập phân) và số 11110 (số 30 trong hệ thập phân).

Cột1234567
71=1000111
30=11110
101=1100101

Ta tiến hành cộng từ phải sang trái như sau:

BướcTại cộtThực hiện phép tính
171 + 0 = 1
261 + 1 = 10, viết 0, nhớ 1
351 + 1 = 10, cộng thêm 1 (nhớ ở bước 2) là 11, viết 1 nhớ 1
440 + 1 = 1, cộng thêm 1 (nhớ ở bước 3) là 10, viết 0, nhớ 1
530 + 1 = 1, cộng thêm 1 (nhớ ở bước 4) là 10, viết 0, nhớ 1
620 + 1 (nhớ ở bước 5) = 1
71lấy 1 ở trên xuống.

Kết quả được: 1000111 + 11110 = 1100101 (71 + 30 = 101).

Danh sách các số nhị phân từ 1 đến 100

Tham khảo: danh sách các số nhị phân từ 1 đến 100

Số thập phânSố nhị phân
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111
1610000
1710001
1810010
1910011
2010100
2110101
2210110
2310111
2411000
2511001
2611010
2711011
2811100
2911101
3011110
3111111
32100000
33100001
34100010
35100011
36100100
37100101
38100110
39100111
40101000
41101001
42101010
43101011
44101100
45101101
46101110
47101111
48110000
49110001
50110010
51110011
52110100
53110101
54110110
55110111
56111000
57111001
58111010
59111011
60111100
61111101
62111110
63111111
641000000
651000001
661000010
671000011
681000100
691000101
701000110
711000111
721001000
731001001
741001010
751001011
761001100
771001101
781001110
791001111
801010000
811010001
821010010
831010011
841010100
851010101
861010110
871010111
881011000
891011001
901011010
911011011
921011100
931011101
941011110
951011111
961100000
971100001
981100010
991100011
1001100100

Nguồn: Số nhị phân là gì? Ứng dụng mã nhị phân Binary trong máy tính

Bài viết này có hữu ích với bạn không?