Tại sao bát phân và thập lục phân? Máy tính sử dụng số thập phân và con người


15

Tại sao chúng ta sử dụng các cơ sở khác không phải là nhị phân (đối với máy tính) cũng không phải là số thập phân (đối với con người)?

Máy tính cuối cùng đại diện cho chúng trong nhị phân, và con người rất thích nhận được biểu diễn thập phân của chúng. Tại sao không bám vào hai căn cứ này?


Tôi có xu hướng nghĩ rằng không có lý do vững chắc để sử dụng hex hoặc bất cứ thứ gì có lượng glyphs cao cho các con số. Thậm chí, tôi có xu hướng nghĩ rằng đại diện nhị phân có thể thay thế các ký hiệu khác cho trường hợp chung trong tương lai.
Mikhail V

@MikhailV Một đại diện hex là RẤT ngắn gọn hơn đại diện nhị phân. Tôi muốn nói rằng đó là một lý do khá chắc chắn để sử dụng số lượng glyphs lớn hơn, giả sử, 2.
Ben Jones

Câu trả lời:


18

Các số Octal (cơ số 8) và thập lục phân (cơ số 16) là một sự thỏa hiệp hợp lý giữa hệ thống nhị phân (cơ sở 2) sử dụng và hệ thống thập phân (cơ sở 10) mà hầu hết con người sử dụng.

Máy tính không giỏi về nhiều ký hiệu, do đó, cơ sở 2 (trong đó bạn chỉ có 2 ký hiệu) phù hợp với chúng trong khi các chuỗi dài hơn, các số có nhiều chữ số hơn sẽ ít gặp vấn đề hơn. Con người rất tốt với nhiều biểu tượng, nhưng không tốt trong việc ghi nhớ các chuỗi dài hơn.

Octal và hex sử dụng lợi thế của con người là chúng có thể hoạt động với rất nhiều ký hiệu trong khi nó vẫn có thể dễ dàng chuyển đổi qua lại giữa nhị phân, bởi vì mỗi chữ số hex đại diện cho 4 chữ số nhị phân ( ) và mỗi chữ số bát phân đại diện cho 3 ( 8 = 2 3 ). Tôi nghĩ rằng hex thắng trên bát phân vì nó có thể dễ dàng được sử dụng để biểu diễn các byte và các số 16/32/64-bit.16= =24số 8= =23


7
Ví dụ, xem xét các giá trị Hex của RGB. Thật dễ dàng để nhớ rằng màu trắng là #FFFFFF. Khó nhớ hơn là màu trắng là 16777215 ở dạng thập phân. Bạn muốn xóa thành phần màu đỏ của # EF439A? Bạn nhận được # 00439A, tức là bạn chỉ cần thay đổi hai chữ số đầu tiên thành 0. Trong số thập phân, bạn phải trừ 15663104. Chúc may mắn nhớ điều đó.
jmite

3
Để chính xác, màu sắc trong ký hiệu thập phân sẽ sử dụng ba lần và màu trắng sẽ là (255, 255, 255). Chúng tôi ghép các giá trị thập lục phân chỉ vì chúng luôn có 2 chữ số. Chúng ta có thể làm tương tự với số thập phân bằng 0, sau đó màu trắng sẽ là 255255255 thay vì 16777215.
Spidey

@Spidey Chính xác. Hơn nữa, bộ não của tôi có thể phân tích thứ gì đó giống như (127,255,255) dễ dàng hơn nhiều và tôi thậm chí có thể đoán màu sắc sẽ trông như thế nào, vì tôi có thể thấy tỷ lệ lượng mực và không phải tính toán nó trong hex.
Mikhail V

13

Chúng tôi sử dụng chúng cho thuận tiện và ngắn gọn.

Hex và Oct là những đại diện nén thực sự nổi bật của nhị phân. Hex đặc biệt rất phù hợp với các dạng địa chỉ bộ nhớ cô đọng. Mỗi chữ số oct trực tiếp ánh xạ tới 3 bit nhị phân và mỗi chữ số hex thành 4 bit nhị phân. Đây là kết quả của các căn cứ (8 và 16) là sức mạnh của 2 ( 2 4 ). Ví dụ: tôi có thể viết nhị phân 01101001 thành hex 69 hoặc nếu tôi mở rộng nó với số 0 đứng đầu là oct 151 .23240110100169151

Vì vậy, giả sử bạn cần một địa chỉ bộ nhớ 64 bit. Bạn có thể xem tất cả 64 bit nhị phân hoặc thu gọn thành 16 chữ số hex. Thường thì bạn không cần so sánh một vài địa chỉ để xem chúng giống nhau hay liền kề nhau. Bạn có muốn nhìn vào 64 bit hoặc 16 chữ số?


5
Octal có lợi ích là không thêm bất kỳ ký hiệu chữ số nào và có thể thực tế hơn trong thời của các ký tự 6 bit (và các từ không có sức mạnh phổ biến của hai từ, ví dụ: PDP-8 12 bit, PDP 18 bit- 1 [thanh ghi địa chỉ cho CDC 6x00], PDP-6 36 bit, thanh ghi toán hạng 60 bit cho CDC 6x00). Việc di chuyển đến các ký tự / byte và các từ có sức mạnh của hai từ làm cho hệ thập lục phân hấp dẫn hơn.
Paul A. Clayton

"Bạn có muốn nhìn vào 64 bit hoặc 16 chữ số không?" Chắc chắn tôi sẽ nhìn vào các bit được nhóm. Nhưng của couse không có trong ký hiệu "01", điều đó thật xấu xí và làm tổn thương đôi mắt của tôi. Và tôi thậm chí không biết bao nhiêu hex làm tổn thương đôi mắt của tôi.
Mikhail V

@MikhailV: Ý của bạn là gì về ký hiệu "01"? Bạn nói rằng bạn thà nhìn vào các bit nhưng không phải trong ký hiệu "01", - sau đó bạn sẽ sử dụng ký hiệu nào. Nếu bạn nói hex làm tổn thương đôi mắt của bạn, tôi không thể không nghĩ rằng bạn có thể đã thực hành nhiều hơn một chút về số thập phân so với hex. (Trên thực tế tôi nghĩ rằng đó là (solo) sex được cho là xấu cho mắt của bạn, nhưng đó là một câu chuyện khác.)
PJTraill

Tôi thích câu trả lời này cho câu trả lời phổ biến hơn hiện nay của dtech vì nó nhấn mạnh đến tính dễ sử dụng, nhưng bạn có thể đã chỉ ra rằng không chỉ các biểu diễn ngắn hơn mà cả các chữ số lớn hơn giúp bạn dễ dàng biết bạn đang ở đâu khi đọc số ở dạng hex hoặc bát phân.
Giao dịch

@ PaulA.Clayton: điểm tốt; Một ưu điểm khác trên PDP-11 là mặc dù các từ (đơn vị hoạt động tự nhiên) là 16 bit, hầu hết các mã lệnh đều tự nhiên rơi vào hoạt động 2 bit và bốn nhóm 3 bit đại diện cho số đăng ký và chế độ địa chỉ, cả hai đều có 8 khả năng, của hai đối số. Sở thích của tôi: 014747 = MOV - (PC), - (PC), tự lấp đầy bộ nhớ (nếu được phép).
PJTraill

5

Số nhị phân trong văn bản là một sự lãng phí không gian.

Số thập phân cho thấy không có liên quan đến quyền hạn của . Thường thì thực tế là một số là, nói 5 2 n - 1 , là quan trọng hơn bao nhiêu đó là.252n-1


2

Giới thiệu

Như đã được đề cập bởi các câu trả lời khác, có thể có các ký hiệu khác nhau cho các mục đích và ràng buộc khác nhau. Các ký hiệu thực sự là một mã hóa dưới dạng một chuỗi các ký tự và chúng ta biết từ nghiên cứu các thuật toán và cấu trúc dữ liệu có nhiều cách chúng ta có thể mã hóa các khái niệm trừu tượng, một danh sách hoặc một tập hợp, tùy thuộc vào những gì chúng ta muốn làm với nó . Trong trường hợp này, nó chủ yếu là thuật toán thuận tiện.

Khi xem xét đại diện của các số, áp dụng tương tự. Bên trong máy tính, mọi thứ đều là nhị phân ở mức thấp nhất, mặc dù các đại diện lạ có thể được sử dụng cho một số ứng dụng.

Bên ngoài máy tính, chúng tôi sử dụng bất kỳ loại hình đại diện dễ hiểu nào của con người, tùy thuộc vào sự thuận tiện của con người liên quan đến loại giá trị được đại diện. Biểu diễn nhị phân thường quá dài và không có cấu trúc để có thể đọc và viết dễ dàng, do đó tạo ra vị trí thập lục phân hoặc bát phân.Sự lựa chọn thường có thể liên quan đến cách cấu trúc thông tin trong một từ nhị phân, không nhất thiết phải đại diện cho một số.

Nhưng, khi chỉ xem xét các chữ số , tức là đại diện cho các số, đáng để xem xét các hệ thống biểu diễn số khác để hiểu rằng các yếu tố chính là: sinh lý, thói quen và sự thuận tiện. Sự tiện lợi tất nhiên là yếu tố hàng đầu tạo ra sự đa dạng, vì nó phụ thuộc vào bối cảnh sử dụng.

Một cái nhìn rộng hơn

2n các hệ thống , chủ yếu là hệ nhị phân, bát phân và cực trị.

Phần chính của câu hỏi dường như không giới hạn đối với máy tính, và con người đã và vẫn đang sử dụng một số hệ thống số khác. Một số trong số chúng thậm chí được sử dụng trong các máy tính, ví dụ như khi xử lý các số nguyên dài (không đề cập đến các số không nguyên ).

Một nhận xét đầu tiên là khi mọi người tính hàng nghìn hoặc hàng triệu là một đơn vị, đây vẫn được coi là số thập phân, bởi vì đây là các lũy thừa của 10. Vì vậy, người ta có thể tự hỏi tại sao bát phân hay thập lục phân không nên được coi chỉ là một biến thể của nhị phân. Một lý do có thể là số lượng các ký hiệu được sử dụng để thể hiện các số (mặc dù đó là vấn đề gây tranh cãi, như chúng ta sẽ thấy với các hệ thống khác).

Sau đó, liên quan đến con người, họ sử dụng một số hệ thống trong cơ sở 5, được gọi là hệ thống quinary . Trên thực tế, hầu hết các hệ thống này có hai cơ sở, cơ sở thứ hai là 2 hoặc 4, xen kẽ với cơ sở năm, làm cho chúng tương đương với cơ sở 10 (thập phân) hoặc cơ sở 20 (cấp số). Đoán xem nó đến từ đâu :)

Các hệ thống cơ sở kép này được gọi là hệ thống song phương hoặc tứ phương. Quinary tinh khiết hiếm khi được sử dụng.

Chữ số La Mã có thể được xem là hệ thống hai phương (là một chỉ dẫn về cách làm mỹ phẩm với chúng). Bàn tính Trung Quốc và Nhật Bản sử dụng bi-quinary. Quadri-quinary đã được sử dụng bởi Mayas.

Lý do sử dụng một hệ thống có lẽ là nhiều. Một lý do tốt là nó là thiết kế địa phương đầu tiên, và mọi người đã quen với nó. Ví dụ, người ta có thể tự hỏi tại sao những người nói tiếng Anh vẫn sử dụng một hệ thống số cực kỳ kỳ lạ khi cố gắng đo khoảng cách. Bạn có thể tranh luận rằng đó là vấn đề của nhiều đơn vị, không đánh số, nhưng đó là một nhận xét rất yếu. Số được sử dụng chủ yếu để đo lường mọi thứ.

Các lý do khác để giữ một hệ thống là sự thuận tiện trong một bối cảnh nhất định. Có thể có sự đánh đổi giữa số lượng các ký hiệu khác nhau hoặc các vị trí trên bàn tính và số lượng ký hiệu xuất hiện cần thiết để tạo thành số lượng đủ lớn. Cơ sở 2 hoạt động với 2 biểu tượng riêng biệt, nhưng có rất nhiều lần xuất hiện, điều này có thể gây bất tiện cho việc thể hiện vật chất. Cơ sở số 20 sẽ yêu cầu hai mươi biểu tượng và các bảng nhân rất lớn mà mọi người không nhớ. Nhưng một hệ thống song phương hoặc tứ phương thì dễ quản lý hơn rất nhiều, đặc biệt là xây dựng bàn tính. Hệ thống tinh khiết thuần túy có lẽ sẽ tốt hơn, nhưng nó đi ngược lại thói quen và trực giác dựa trên sinh lý. Và thật tuyệt khi có thể sử dụng ngón tay của chúng tôi để đếm, khi chúng tôi không biết gì hơn.

Nhưng đó không phải là tất cả.

Một hệ thống rất cũ và rất phổ biến là hệ thống kích thích tình dục được sử dụng để đo thời gian và góc (nhưng chúng tôi biết chúng có liên quan với nhau, thông qua vòng quay Trái đất). Nó sử dụng cơ sở 60, nhưng không sử dụng 60 biểu tượng vì đó là quá nhiều. Vì vậy, nó dựa vào một hệ thống khác để thể hiện các biểu tượng của nó (chẳng hạn như hệ thập phân).

Vòng tròn có thể được chia thành 6 phần tương ứng với các góc 60 độ, đây là cách đơn giản nhất để xây dựng với các hình tam giác đều. Sau đó, mỗi độ là 60 phút cung, mỗi độ chia trong 60 giây.

Theo wikipedia

Nó có nguồn gốc từ người Sumer cổ đại vào thiên niên kỷ thứ 3 trước Công nguyên, nó được truyền lại cho người Babylon cổ đại, và nó vẫn được sử dụng dưới dạng sửa đổi trong thời gian, góc và tọa độ địa lý.

Xem xét nguồn gốc nó là một hệ thống khá thuận tiện, vào thời điểm toán học hầu như không đi vào giai đoạn trứng nước. Không chỉ là góc 60⁰ dễ vẽ, mà 60 còn có rất nhiều yếu tố, do đó nó cho phép phân chia theo nhiều cách với số nguyên, không có phần dư.

12×5= =60

Nhưng có nhiều cách khác để đạt được 60, chẳng hạn như hệ thống ternary-ternary của người Babylon .

Tại sao chúng ta vẫn sử dụng hệ thống tình dục. Tôi đoán chúng ta chỉ quen với nó và chúng ta có thể có quá nhiều vấn đề mâu thuẫn để thay đổi được chứng minh đầy đủ.

Thật thú vị khi lưu ý rằng có nhiều tương tác giữa các hệ thống đánh số và hệ thống đơn vị. Nhưng điều này được mong đợi vì biện pháp là một vai trò chính cho các con số. Điều này đáng chú ý trong sự đối lập giữa các số liệu thập phân và nhị phân cho kích thước bộ nhớ .


3
Đó có thể là do tiêu đề nói "Tại sao hex, bát phân hay thập lục phân?"
Fizz

1
@RespawnedFluff Nhận xét tốt. Sau đó, câu hỏi của tôi có thể mở rộng cho câu hỏi. Tôi không có ý nói những câu trả lời khác là không thú vị. Nhưng một cái nhìn rộng hơn cho thấy tốt hơn các động lực có thể cho một loạt các hệ thống. Nó hỗ trợ một số câu trả lời đã được đưa ra. Về cơ bản động lực là thói quen và sự thuận tiện. Nhưng thuận tiện là rất nhiều phụ thuộc vào bối cảnh. Sự phân đôi kích thước bộ nhớ là một thứ được tạo gần đây và nó minh họa điểm này.
babou

2
Brevity là một đức tính, câu hỏi này không yêu cầu một văn xuôi 1000 từ, và hầu hết không liên quan lắm. Bạn cũng không trả lời được câu hỏi.
dtech

"Khi mọi người đếm hàng nghìn, ..., đây vẫn được coi là số thập phân, vì đây là số lũy thừa của 10. Vì vậy, người ta có thể tự hỏi tại sao bát phân hoặc thập lục phân không nên được coi chỉ là một biến thể của nhị phân." Bởi vì hàng ngàn chỉ là thiếu sót của chữ số, thường là 0. Điều này khác với cơ sở 1000 sẽ sử dụng 1000 ký hiệu khác nhau cho mỗi số 0-999.
dtech

1
@dtech Cảm ơn bạn. Tôi đã quên phần giới thiệu hoặc tóm tắt mà tôi thường có trước câu trả lời của mình. Và điều này dẫn tôi đến một điểm quan trọng dường như bị bỏ qua bởi các câu trả lời khác. Không phải mọi từ nhị phân được dự định là một chữ số. Cố gắng để có được cái nhìn rộng hơn là những gì giúp tìm ra vấn đề.
babou
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.