Khoa học máy tính là một hệ thống số. Các loại hệ thống số

Trong hệ nhị phân, chỉ có hai chữ số được sử dụng, 0 và 1. Nói cách khác, hai là cơ sở của hệ thống số nhị phân. (Tương tự, hệ thập phân có cơ số 10)

Để học cách hiểu các số trong hệ thống số nhị phân, trước tiên hãy xem xét cách các số được hình thành trong hệ thống số thập phân mà chúng ta quen thuộc.

Trong hệ thập phân, chúng ta có mười chữ số (từ 0 đến 9). Khi số đếm đạt đến 9, thì một chữ số mới (hàng chục) được đưa vào, và các đơn vị được đặt lại về 0 và bắt đầu đếm lại. Sau 19, chữ số hàng chục được tăng lên 1 và các chữ số hàng đơn vị được đặt lại về số không. Vân vân. Khi hàng chục đạt đến 9, thì danh mục thứ ba xuất hiện - hàng trăm.

Hệ thống số nhị phân tương tự như hệ thống số thập phân, ngoại trừ việc chỉ có hai chữ số tham gia vào việc hình thành số: 0 và 1. Ngay sau khi chữ số đạt đến giới hạn của nó (tức là, một), một chữ số mới xuất hiện, và cái cũ được đặt lại.

Hãy thử đếm trong một hệ thống nhị phân:
0 là 0
1 là một (và đây là giới hạn xả)
10 là hai
11 là ba (và đây là giới hạn một lần nữa)
100 là bốn
101 - năm
110 - sáu
111 - bảy, v.v.

Chuyển đổi số từ nhị phân sang thập phân

Không khó để nhận thấy rằng trong hệ nhị phân, độ dài của các con số phát triển nhanh chóng với các giá trị ngày càng tăng. Làm thế nào để xác định điều này có nghĩa là: 10001001? Không quen với hình thức viết số này, bộ não con người thường không thể hiểu nó là bao nhiêu. Sẽ rất tuyệt nếu có thể chuyển đổi số nhị phân sang số thập phân.

Trong hệ thập phân, bất kỳ số nào cũng có thể được biểu diễn dưới dạng tổng của các đơn vị, hàng chục, hàng trăm, v.v. Ví dụ:

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

Hãy xem kỹ mục này. Ở đây các số 1, 4, 7 và 6 là một tập hợp các số tạo nên số 1476. Tất cả các số này lần lượt được nhân với mười nâng lên mức này hay mức khác. Mười là cơ số của hệ thống số thập phân. Mức độ mà số mười được nâng lên là chữ số của chữ số trừ đi một.

Bất kỳ số nhị phân nào cũng có thể được mở rộng tương tự. Chỉ cơ sở ở đây sẽ là 2:

10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

Những thứ kia. cơ số 2 của 10001001 bằng cơ số 10 của 137. Nó có thể được viết như thế này:

10001001 2 = 137 10

Tại sao hệ thống số nhị phân lại phổ biến như vậy?

Vấn đề là hệ thống số nhị phân là một ngôn ngữ máy tính. Mỗi chữ số phải được biểu diễn bằng cách nào đó trên một phương tiện vật lý. Nếu đây là một hệ thập phân, thì bạn phải tạo một thiết bị như vậy, có thể ở mười trạng thái. Nó phức tạp lắm. Dễ dàng hơn để tạo ra một phần tử vật lý chỉ có thể ở hai trạng thái (ví dụ: có dòng điện hoặc không có dòng điện). Đây là một trong những lý do chính khiến hệ thống số nhị phân chú ý nhiều đến như vậy.

Chuyển đổi thập phân sang nhị phân

Bạn có thể cần chuyển đổi thập phân sang nhị phân. Một cách là chia cho hai và tạo thành một số nhị phân từ phần dư. Ví dụ: bạn cần lấy ký hiệu nhị phân của nó từ số 77:

77/2 = 38 (1 phần còn lại)
38/2 = 19 (0 phần còn lại)
19/2 = 9 (1 phần còn lại)
9/2 = 4 (1 phần còn lại)
4/2 = 2 (0 phần còn lại)
2/2 = 1 (0 phần còn lại)
1/2 = 0 (1 phần còn lại)

Đặt các phần còn lại lại với nhau, bắt đầu từ cuối: 1001101. Đây là số 77 trong biểu diễn nhị phân. Hãy kiểm tra:

1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77

Hệ này có cơ số S = 10, nhưng mỗi chữ số được biểu diễn bằng một số nhị phân có bốn chữ số, được gọi là tetrad. Thông thường, hệ thống số này được sử dụng trong máy tính khi nhập và xuất thông tin. Tuy nhiên, trong một số loại máy tính trong ALU có các khối số học thập phân đặc biệt thực hiện các phép toán trên các số dưới dạng mã nhị phân-thập phân. Điều này cho phép trong một số trường hợp tăng đáng kể năng suất của máy tính.

Ví dụ, trong một hệ thống xử lý dữ liệu tự động, có rất nhiều con số, nhưng ít phép tính. Trong trường hợp này, các hoạt động liên quan đến việc chuyển số từ hệ thống này sang hệ thống khác sẽ vượt quá đáng kể thời gian cần thiết để thực hiện các hoạt động xử lý thông tin.

Chuyển đổi số từ hệ thập phân sang hệ thập phân nhị phân rất đơn giản và bao gồm việc thay thế mỗi chữ số bằng một tứ phân nhị phân.

Thí dụ.

Viết số thập phân 572,38 (10) vào BCD.

Việc dịch ngược lại cũng đơn giản: bạn cần chia số thập phân-nhị phân thành các tứ phân từ điểm sang trái (đối với phần nguyên) và sang phải (đối với phần phân số), thêm số lượng các số không không đáng kể được yêu cầu, và sau đó viết mỗi tetrad dưới dạng một chữ số thập phân.

Thí dụ.

Viết ra số thập phân-nhị phân 10010.010101 (2-10) dưới dạng ký hiệu thập phân.

Việc chuyển đổi số từ hệ nhị phân sang hệ nhị phân được thực hiện theo các quy tắc chung được mô tả ở trên.

2.3. Hệ thống số bát phân

Trong hệ thống số bát phân, chỉ có tám chữ số được sử dụng, tức là hệ thống số này có cơ số S = 8. Nói chung, một số bát phân có dạng như sau:

ở đâu
.

Hệ thống số bát phân không cần máy tính, ngược lại với hệ thống nhị phân. Nó thuận tiện như một dạng viết số nhỏ gọn và được các lập trình viên sử dụng (ví dụ, trong các văn bản chương trình để viết ngắn gọn và thuận tiện hơn các mã nhị phân của lệnh, địa chỉ và toán hạng). Trong hệ bát phân, trọng số của mỗi chữ số là bội số của tám hoặc một phần tám, do đó, số nhị phân tám bit cho phép các giá trị thập phân được biểu thị trong phạm vi 0-255 và bát phân bao gồm phạm vi 0-99999999 ( đối với hệ nhị phân, đây là 27 bit).

Vì 8 = 2 3, mỗi ký tự bát phân có thể được biểu diễn bằng một số nhị phân ba bit. Để chuyển một số từ hệ thống số nhị phân sang hệ bát phân, cần phải tách số này sang bên trái (đối với phần nguyên) và bên phải (đối với phân số) từ một điểm (dấu phẩy) thành các nhóm có ba chữ số (bộ ba ) và biểu diễn mỗi nhóm dưới dạng một chữ số trong hệ thống số bát phân. Các bộ ba cực không hoàn chỉnh được bổ sung bằng số lượng các số không không đáng kể theo yêu cầu.

Thí dụ.

Viết số nhị phân 10101011111101 (2) dưới dạng ký hiệu bát phân.

Thí dụ.

Viết số nhị phân 1011.0101 (2) dưới dạng ký hiệu bát phân.

Việc chuyển đổi từ bát phân sang nhị phân được thực hiện bằng cách biểu diễn từng chữ số của một số bát phân với một số nhị phân có ba chữ số (bộ ba).

2.4. Hệ thống số thập lục phân

Hệ thống số này có cơ số S = 16. Nói chung, một số thập lục phân có dạng như sau:

ở đâu
.

Hệ thống số thập lục phân cho phép bạn viết các số nhị phân nhiều bit thậm chí còn ngắn hơn và ngoài ra, để rút ngắn ký hiệu của số nhị phân 4 bit, tức là nhấm nháp vì 16 = 2 4. Hệ thống thập lục phân cũng được sử dụng trong các văn bản chương trình để có ký hiệu ngắn gọn và thuận tiện hơn cho các số nhị phân.

Để chuyển đổi một số từ hệ thống số nhị phân sang hệ thập lục phân, cần phải chia số này ở bên trái và bên phải của điểm thành các tứ phân và biểu diễn mỗi tứ phân bằng một chữ số trong hệ thống số thập lục phân.

Thí dụ.

Viết số nhị phân 10101011111101 (2) dưới dạng ký hiệu thập lục phân.

Thí dụ.

Viết số nhị phân 11101.01111 (2) dưới dạng ký hiệu thập lục phân.

Để chuyển đổi một số từ hệ thập lục phân sang hệ nhị phân, ngược lại, cần phải thay thế mỗi chữ số của số này bằng một tứ phân.

Kết luận, cần lưu ý rằng việc chuyển các số tùy ý từ hệ thống số này sang hệ thống số khác có thể được thực hiện theo các quy tắc chung được mô tả trong phần “Hệ thống số nhị phân”. Tuy nhiên, trên thực tế, các phép dịch các số từ hệ thập phân sang các hệ số được xem xét và ngược lại được thực hiện thông qua hệ thống số nhị phân.

Ngoài ra, hãy nhớ rằng số thập lục phân và số bát phân chỉ là một cách để biểu diễn các số nhị phân lớn mà bộ xử lý thực sự hoạt động. Trong trường hợp này, hệ thập lục phân hóa ra lại được ưu tiên hơn, vì trong máy tính hiện đại, bộ xử lý thao tác các từ có độ dài 4, 8, 16, 32 hoặc 64 bit, tức là độ dài từ chia hết cho 4. Trong hệ thống số bát phân, các từ là bội số của 3 bit được ưu tiên, ví dụ, các từ 12 bit (như trong DEC PDP-8).

Hệ thống số thập phân-nhị phân đã trở nên phổ biến trong các máy tính hiện đại do dễ dàng chuyển đổi sang hệ thập phân và ngược lại. Nó được sử dụng không tập trung vào sự đơn giản của thiết kế kỹ thuật của máy mà là sự thân thiện với người dùng. Trong hệ thống số này, tất cả các chữ số thập phân được mã hóa riêng biệt bằng bốn chữ số nhị phân và ở dạng này được viết tuần tự lần lượt.

Hệ thống nhị phân-thập phân không kinh tế theo quan điểm của việc thực hiện xây dựng kỹ thuật của máy (thiết bị yêu cầu tăng khoảng 20%), nhưng nó rất thuận tiện khi chuẩn bị nguyên công và khi lập trình. Trong hệ thập phân nhị phân, cơ số của hệ thống số là mười, nhưng mỗi chữ số trong số 10 chữ số thập phân (0, 1, ..., 9) được biểu diễn bằng các chữ số nhị phân, tức là nó được mã hóa bằng các chữ số nhị phân. Bốn chữ số nhị phân được sử dụng để biểu thị một chữ số thập phân. Tất nhiên, có sự dư thừa ở đây, vì bốn chữ số nhị phân (hoặc một tứ phân nhị phân) không thể đại diện cho 10 mà là 16 số, nhưng đây đã là chi phí sản xuất vì lợi ích của việc lập trình. Có một số hệ thống thập phân được mã hóa nhị phân để biểu diễn các số, khác nhau ở chỗ một số kết hợp số không và số đơn vị trong một tứ phân được gán các giá trị nhất định của chữ số thập phân 1.

Trong hệ thống số thập phân được mã hóa nhị phân tự nhiên được sử dụng phổ biến nhất, trọng số của các chữ số nhị phân trong tứ phân là tự nhiên, nghĩa là, 8, 4, 2, 1 (Bảng 3.1).

Bảng 3.1. Bảng mã nhị phân thập phân và thập lục phân

Số Mã số Số Mã số
MỘT
NS
C
NS
E
NS

Ví dụ: số thập phân 9703 trong BCD trông như sau: 1001011100000011.

Câu hỏi 18. Ong vò vẽ Cơ sở logic của máy tính. Các phép toán đại số logic

Đại số logic cung cấp nhiều phép toán logic. Tuy nhiên, ba trong số họ đáng được quan tâm đặc biệt. với sự giúp đỡ của họ, bạn có thể mô tả tất cả những thứ khác, và do đó, sử dụng ít thiết bị khác nhau hơn khi thiết kế mạch. Các hoạt động như vậy là sự liên kết(VÀ), phân ly(Hoặc và sự phủ định(KHÔNG PHẢI). Sự kết hợp thường được ký hiệu & , disjunction - || và phủ định được hiển thị bằng một thanh phía trên biến biểu thị một câu lệnh.

Với phép kết hợp, chân trị của một biểu thức phức tạp chỉ nảy sinh nếu tất cả các biểu thức đơn giản tạo nên phức hợp đều đúng. Trong tất cả các trường hợp khác, một biểu thức phức tạp sẽ là sai.

Trong trường hợp tách biệt, giá trị của một biểu thức phức tạp xảy ra khi ít nhất một trong các biểu thức đơn giản có trong nó hoặc hai biểu thức cùng một lúc là đúng. Điều xảy ra là một biểu thức phức tạp bao gồm nhiều hơn hai biểu thức đơn giản. Trong trường hợp này, chỉ cần một câu đơn giản là đúng và sau đó toàn bộ câu lệnh sẽ đúng.

Phủ định là một phép toán đơn nguyên, bởi vì nó được thực hiện liên quan đến một biểu thức đơn giản hoặc liên quan đến kết quả của một biểu thức phức tạp. Kết quả của sự phủ định, một phát biểu mới thu được, ngược lại với phát biểu ban đầu.

Câu hỏi 19. Các quy tắc cơ bản của đại số logic

Cách viết thông thường của các luật này theo logic hình thức:

Câu hỏi 20. Bảng sự thật

Bảng sự thật

Nó là thuận tiện để mô tả các hoạt động logic bằng cái gọi là bảng sự thật, phản ánh kết quả tính toán của các câu lệnh phức tạp đối với các giá trị khác nhau của các câu lệnh đơn giản ban đầu. Các câu lệnh đơn giản được biểu thị bằng các biến (ví dụ: A và B).

Câu hỏi 21. Cổng logic. Tên và ký hiệu của họ trên sơ đồ

Làm thế nào chúng ta có thể sử dụng kiến ​​thức chúng ta đã thu được từ lĩnh vực logic toán học để thiết kế các thiết bị điện tử? Chúng ta biết rằng O và 1 trong logic không chỉ là những con số, mà là sự chỉ định các trạng thái của một số đối tượng trong thế giới của chúng ta, thường được gọi là "sai" và "sự thật". Một vật như vậy, có hai trạng thái cố định, có thể là một dòng điện. Các thiết bị khắc phục hai trạng thái ổn định được gọi là bistable(ví dụ: công tắc, rơ le). Nếu bạn còn nhớ, những chiếc máy tính đầu tiên là máy tính chuyển tiếp. Sau đó, các thiết bị điều khiển điện mới đã được tạo ra - mạch điện bao gồm một tập hợp các phần tử bán dẫn. Các mạch điện tử như vậy, chuyển đổi tín hiệu của dòng điện chỉ có hai điện áp cố định (bistable), bắt đầu được gọi là các yếu tố logic.

Yếu tố logic của máy tính là một phần của mạch logic điện tử thực hiện một chức năng logic cơ bản.

Các phần tử logic của máy tính là các mạch điện tử VÀ, HOẶC, KHÔNG, VÀ-KHÔNG, HOẶC KHÔNG và những người khác (còn được gọi là van), cũng như cò súng.

Sử dụng các lược đồ này, bạn có thể triển khai bất kỳ hàm logic nào mô tả hoạt động của các thiết bị máy tính. Thông thường, van có hai đến tám đầu vào và một hoặc hai đầu ra.

Để biểu diễn hai trạng thái logic - "1" và "0" trong các cổng, tín hiệu đầu vào và đầu ra tương ứng có một trong hai mức điện áp đặt. Ví dụ: +5 volt và 0 volt.

Mức cao thường đúng (“1”) và mức thấp thường là sai (“0”).

Mỗi phần tử lôgic có ký hiệu riêng, trong đó thể hiện chức năng logic của nó, nhưng không cho biết loại mạch điện tử nào được thực hiện trong đó. Điều này làm cho việc viết và hiểu các mạch logic phức tạp trở nên dễ dàng hơn.

Hoạt động của các phần tử logic được mô tả bằng cách sử dụng bảng sự thật.

Bảng sự thật nó là một biểu diễn dạng bảng của một mạch logic (hoạt động) liệt kê tất cả các kết hợp có thể có của các giá trị chân lý của tín hiệu đầu vào (toán hạng) cùng với giá trị chân lý của tín hiệu đầu ra (kết quả hoạt động) cho mỗi kết hợp này.

Việc biểu diễn các con số trong bộ nhớ máy tính có một đặc điểm cụ thể liên quan đến thực tế là trong bộ nhớ máy tính, chúng phải được định vị theo byte - ô nhớ địa chỉ nhỏ nhất có kích thước. Tất cả bộ nhớ máy tính được chia thành các phần riêng biệt 8 bit (tức là byte). Các byte được đánh số: 0, 1, 2, ..., được gọi là địa chỉ. Hai ô liền kề: 0 và 1, 2 và 3, v.v. tạo thành một ô nhớ máy tính. Những thứ kia. một ô nhớ có thể lưu trữ hai byte hoặc 16 bit thông tin. Đối với nội dung của một ô, tên được sử dụng - "từ máy" hoặc đơn giản là "từ". Rõ ràng, địa chỉ của số là địa chỉ của byte đầu tiên, tức là số chẵn, bắt đầu bằng 0, 2, 4, 6, v.v. Một byte có thể chứa mã tùy ý gồm tám bit nhị phân và nhiệm vụ của biểu diễn là xác định các quy tắc về cách viết một số trong một hoặc nhiều byte.

Các số có thể là chính xác toàn bộ, chính xác phân số, hợp lý, không hợp lý, gần đúng phân số, dương và âm. Các con số có thể là "sao lùn" (ví dụ, khối lượng của một nguyên tử), "khổng lồ" (ví dụ, khối lượng của trái đất), thực (ví dụ, số học sinh trong một nhóm, chiều cao, tuổi). Và mỗi số sẽ yêu cầu số byte riêng để biểu diễn tối ưu trong bộ nhớ.

Không thể tạo ra một biểu diễn tối ưu duy nhất cho các số thực. Do đó, các bộ số được chia thành các loại (ví dụ, các số nguyên trong phạm vi từ ... đến ..., dấu phẩy động gần đúng với số chữ số có nghĩa ... vv). Đối với từng loại riêng biệt sẽ tạo ra cách trình bày riêng.

Số nguyên... Các số nguyên dương từ 0 đến 255 có thể được biểu diễn trực tiếp trong hệ thống số nhị phân (mã nhị phân). Những con số như vậy sẽ chiếm một byte trong bộ nhớ của máy tính.

Ở dạng biểu diễn này, số học nhị phân được thực hiện dễ dàng trên máy tính. Dấu cộng hoặc trừ của số được mã hóa thành một bit riêng biệt. Đây thường là bit quan trọng nhất. Số không được hiểu là "cộng", một là "trừ". Do đó, các số nguyên trong phạm vi từ –128 đến +127 có thể được mã hóa bằng một byte. Số học nhị phân trong trường hợp này sẽ hơi phức tạp, vì trong trường hợp này, có hai mã đại diện cho số 0 00000000 và 100000000. Trong máy tính ở cấp phần cứng, mã này phải được cung cấp. Cách biểu diễn số nguyên này được gọi là mã trực tiếp... Với số âm, sẽ dễ dàng hơn một chút nếu bạn sử dụng mã bổ sung. Trong mã phần bù của hai, các số dương giống với các số dương trong mã trực tiếp, trong khi các số âm thu được bằng cách lấy 100.000.000 trừ đi số tương ứng. Ví dụ, số –3 sẽ nhận được mã:

Số học được triển khai tốt trong mã bổ sung của hai. Mỗi mã tiếp theo được lấy từ mã trước đó bằng cách thêm một mã có độ chính xác đến một bit ở bit thứ chín. Ví dụ: 5 - 3 = 5 + (-3)

1 00000010

Loại bỏ chữ số có nghĩa nhất được gạch dưới, chúng ta nhận được 2.

Tương tự như vậy, các số nguyên từ 0 đến 65536 và các số nguyên từ –32768 đến 32767 trong ký hiệu nhị phân (thập lục phân) được biểu diễn trong các ô hai byte. Ngoài ra còn có các biểu diễn số nguyên trong các ô bốn byte.

Số thực... Số thực trong toán học được biểu diễn bằng phân số hữu hạn hoặc vô hạn, tức là độ chính xác của các con số không bị giới hạn. Tuy nhiên, trong máy tính, các số được lưu trữ trong các thanh ghi và vị trí bộ nhớ, là một chuỗi các byte với số lượng bit giới hạn. Do đó, các số vô hạn hoặc số rất dài được cắt bớt đến một độ dài nhất định và trong biểu diễn máy tính đóng vai trò là các số gần đúng. Trong hầu hết các hệ thống lập trình, phần nguyên và phần phân số khi viết số thực được phân tách không phải bằng dấu phẩy mà bằng dấu chấm.

Để biểu diễn các số thực, cả rất nhỏ và rất lớn, rất tiện lợi khi sử dụng hình thức viết số dưới dạng tích:

Trong đó m là cơ sở của hệ số;

P là một số nguyên được gọi là thứ tự.

Cách viết số này được gọi là biểu diễn số dấu phẩy động.

Những thứ kia. số 1234.56 có thể được viết:

1234,56 = 123,456*10 1 = 12,3456*10 2 = 1,23456*10 3 = 0,123456*10 4 .

Quan điểm này không rõ ràng. Nếu phần định trị (0,1 cho S.S. thập phân), thì biểu diễn của số trở nên rõ ràng và dạng này được gọi là bình thường hóa... Nếu dấu chấm "động" nằm trong phần định trị trước chữ số có nghĩa đầu tiên, thì với một số chữ số cố định được phân bổ cho phần định trị, số chữ số có nghĩa lớn nhất của số đó được ghi lại, tức là có độ chính xác lớn nhất.

Các số thực được viết khác nhau trong các loại máy tính khác nhau, nhưng có một số định dạng quốc tế tiêu chuẩn khác nhau về độ chính xác nhưng có cùng cấu trúc. Hãy xem xét một số 4 byte làm ví dụ.

Đặc tính Mantissa

mantissa

Bit đầu tiên của biểu diễn được sử dụng để ghi lại dấu của phần định trị. Đằng sau nó là một nhóm các chữ số xác định thứ tự, và các chữ số còn lại xác định giá trị tuyệt đối của phần định trị. Kích thước của cả hai nhóm chữ số đều cố định. Bởi vì thứ tự có thể là tích cực hoặc tiêu cực, bạn cần phải giải quyết vấn đề của dấu hiệu của nó. Độ lớn của đơn đặt hàng được thể hiện vượt quá, tức là thay vì giá trị thực của đơn đặt hàng, một số được lưu trữ được gọi là đặc tính(hoặc đơn đặt hàng đã thay thế). Để có được đặc tính, bạn cần thêm một phần bù vào đơn hàng. Ví dụ: nếu bạn sử dụng độ lệch 128 để lưu trữ thứ tự của tám bit và các giá trị từ –128 đến +127, thì các giá trị từ 0 đến 255 sẽ được sử dụng để đại diện cho thứ tự; chỉ các số không âm.

Bởi vì phần định trị của một số chuẩn hóa luôn là 1, một số sơ đồ biểu diễn chỉ ngụ ý nó, sử dụng thêm một chữ số để tăng độ chính xác của biểu diễn phần định trị.

Sử dụng biểu mẫu bù trừ cho phép bạn thực hiện các thao tác trên đơn hàng như với số không dấu, giúp đơn giản hóa các thao tác so sánh, cộng và trừ các đơn hàng. Nó cũng giúp bạn dễ dàng so sánh các số chuẩn hóa. Càng dành nhiều chữ số để ghi phần định trị, độ chính xác của biểu diễn số càng cao. Thứ tự chiếm càng nhiều chữ số thì phạm vi từ số khác không nhỏ nhất đến số lớn nhất có thể được biểu diễn trong máy tính ở định dạng nhất định càng rộng.

Như với số nguyên, hệ thống phần mềm có thể sử dụng một số kiểu dữ liệu thực hiện mô hình dấu phẩy động. Ví dụ, ngôn ngữ C sử dụng ba loại dữ liệu với "độ dài" khác nhau. Các trình biên dịch 16 bit cho PC tương thích với IBM triển khai các loại này như sau:

Float - 4 byte, trong đó 23 bit phần định trị và 8 bit thứ tự

(3,4 * 10 -38 đến 3,4 * 10 38, cung cấp độ chính xác 7 chữ số có nghĩa);

Đôi - 8 byte, trong đó 52 bit phần định trị và 11 bit thứ tự

(từ 1,7 * 10 -308 đến 1,7 * 10 308, cung cấp độ chính xác với 15 chữ số);

Đôi dài - 10 byte, trong đó 65 bit phần định trị và 14 bit thứ tự

(từ 3,4 * 10 -4932, cung cấp độ chính xác với 19 chữ số).

Khái niệm kiểu dữ liệu... Chúng tôi đã nói rằng đơn vị bộ nhớ có thể định địa chỉ tối thiểu là một byte, nhưng việc biểu diễn một số yêu cầu nhiều không gian hơn. Các số như vậy sẽ chiếm một nhóm byte và địa chỉ của số sẽ là địa chỉ của byte đầu tiên của nhóm. Do đó, một byte tùy ý được lấy từ bộ nhớ không nói lên điều gì về đối tượng thông tin mà nó là một phần của - một số nguyên, một số dấu phẩy động hoặc một lệnh. Do đó, chúng ta có thể kết luận rằng ngoài vấn đề biểu diễn dữ liệu trong mã nhị phân, vấn đề nghịch đảo được giải quyết song song - việc giải thích mã, tức là cách khôi phục dữ liệu gốc từ các mã.

Để biểu diễn các dạng thông tin cơ bản (số nguyên, số dấu chấm động, ký hiệu, âm thanh, v.v.), các hệ thống lập trình sử dụng các kiểu dữ liệu. Mỗi kiểu dữ liệu xác định cấu trúc trình bày và diễn giải hợp lý cho dữ liệu tương ứng.

Đôi khi việc lưu trữ các số trong bộ nhớ bộ xử lý ở dạng thập phân (ví dụ: để hiển thị trên màn hình) rất tiện lợi. Để viết những con số như vậy, hãy sử dụng mã thập phân nhị phân... Đừng nhầm lẫn BCD với. Bốn bit nhị phân được sử dụng để viết một chữ số thập phân. Bốn bit này được gọi là sổ ghi chép. Đôi khi cái tên bắt nguồn từ văn học tiếng Anh: nibl. Mười sáu chữ số có thể được mã hóa bằng bốn bit. Các kết hợp BCD bổ sung bị cấm. Bảng tương ứng giữa BCD và các chữ số thập phân được hiển thị bên dưới:

BCD Mã thập phân
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9

Phần còn lại của các tổ hợp mã nhị phân trong tetrad đều bị cấm. Hãy viết một ví dụ về BCD:

1258 = 0001 0010 0101 1000

Quyển thứ nhất chứa số 1, quyển thứ hai - 2, thứ ba - 5, và quyển cuối cùng chứa số 8. Trong ví dụ này, cần bốn quyển vở để viết số 1258. Số lượng ô nhớ của bộ vi xử lý phụ thuộc vào dung lượng của nó. Với bộ xử lý 16-bit, toàn bộ số sẽ nằm gọn trong một ô nhớ.

589 = 0000 0101 1000 1001

Trong ví dụ này, ba sổ ghi chép là đủ để viết một số, nhưng ô nhớ là 16 bit. Do đó, tetrad cao cấp được lấp đầy bởi các số không. Chúng không thay đổi ý nghĩa của chữ số. Nếu chúng ta điền số 0 vào tetrad thấp nhất, con số sẽ tăng lên gấp 10 lần!

Khi viết số thập phân, thường phải viết dấu của số và dấu thập phân (ở các nước nói tiếng Anh là dấu chấm). BCD thường được sử dụng để quay số điện thoại hoặc mã quay số cho các dịch vụ điện thoại. Trong trường hợp này, ngoài các chữ số thập phân, các ký hiệu "*" hoặc "#" thường được sử dụng. Các kết hợp bị cấm được sử dụng để viết các ký tự này trong BCD.

Thông thường, một ô nhớ duy nhất (tám, mười sáu hoặc ba mươi hai bit) được cấp phát trong bộ nhớ của bộ xử lý để lưu trữ một chữ số thập phân. Điều này được thực hiện để tăng tốc độ của chương trình. Để phân biệt cách viết số BCD này với cách viết chuẩn, cách viết số thập phân, như trong ví dụ, được gọi là hình thức đóng gói số thập phân nhị phân. Hãy viết các số tương tự như trong ví dụ trước trong BCD được giải nén cho bộ xử lý tám bit:

1258 =00000001 00000010 00000101 00001000

Dòng đầu tiên chứa số 1, dòng thứ hai - 2, dòng thứ ba - 5 và dòng cuối cùng chứa số 8. Trong ví dụ này, phải mất bốn dòng (ô nhớ) để viết số 1258

589 = 00000000 00000101 00001000 00001001

Tính tổng các số BCD.

Các số thập phân nhị phân có thể được tính tổng theo các quy tắc của số học nhị phân thông thường, và sau đó được tạo ra sửa bcd... Chỉnh sửa BCD là kiểm tra từng sổ ghi chép để tìm các mã hợp lệ. Nếu một kết hợp bị cấm được tìm thấy trong bất kỳ tetrad nào, thì điều này cho thấy sự tràn. Trong trường hợp này, bạn cần thực hiện hiệu chỉnh BCD. Chỉnh sửa nhị phân-thập phân bao gồm tổng cộng bổ sung của số sáu (số lượng kết hợp bị cấm) với sổ ghi chép trong đó xảy ra tràn hoặc chuyển sang sổ ghi chép trên. Đây là hai ví dụ.