Mục lục:
Video: Bài 37. Chuyển số nhị phân sang thập phân và ngược lại 2025
Các biến C ++ được lưu trữ nội bộ như những cái gọi là số nhị phân. Các số nhị phân được lưu trữ dưới dạng một chuỗi các giá trị 1 và 0 được gọi là bit. Hầu hết thời gian, bạn không thực sự cần phải đối phó với các con số ở mức bit; tuy nhiên, có những dịp khi làm như vậy là thuận tiện. C ++ cung cấp một bộ các toán tử cho mục đích này.
Các toán tử logic được gọi là toán tử bit hoạt động trên đối số của chúng ở mức bit. Để hiểu cách chúng hoạt động, hãy kiểm tra cách các máy tính lưu các biến.
Các số mà bạn quen thuộc được gọi là
số thập phân bởi vì chúng dựa trên số 10. Nói chung, trình lập trình biểu diễn C + + biến số thập phân. Vì vậy, bạn có thể nói rằng giá trị của var là 123, ví dụ. Một số như 123 đề cập đến
1 * 100 + 2 * 10 + 3 * 1 . Mỗi số cơ sở - 100, 10, và 1 - là một sức mạnh của 10. Thể hiện bằng một cách hơi khác nhưng tương đương:
123 = 1 * 10
2
+ 2 * 10 1 + 3 * 10 0 Hãy nhớ rằng bất kỳ số nào với công suất bằng không là 1. Hệ thống số khác
Việc sử dụng số cơ sở là 10 hệ thống đếm bắt nguồn từ tất cả các xác suất, từ thực tế là con người có 10 ngón tay, các công cụ đếm ban đầu. Cách thay thế này có thể là cơ sở 20.
bát phân như vậy cũng có hiệu quả:
12310 = 1 * 8 2
+ 7 * 8 1 + 3 * 8 0 = 173 8 10 và 8 nhỏ ở đây đề cập đến hệ thống đánh số, 10 cho thập phân (cơ sở 10) và 8 cho bát phân (cơ sở 8). Một hệ thống đếm có thể sử dụng bất kỳ cơ sở tích cực. Hệ thống số nhị phân Máy tính có hai ngón tay. Máy tính thích đếm bằng cơ sở 2. Số 123 10
sẽ được biểu diễn như sau: Nếu máy tính bị ngớ ngẩn: Nếu không có ngón tay cái có thể phản đối, họ không thể nắm bắt bất cứ thứ gì:
123
10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 < 2
Luôn luôn có quy ước để biểu diễn các số nhị phân bằng cách sử dụng các chữ số nhị phân 4, 8, 32 hoặc 64 ngay cả khi các chữ số hàng đầu là số không. Đây cũng là do cách máy tính được xây dựng nội bộ. Bởi vì chữ chữ số
đề cập đến một bội số của mười, một chữ số nhị phân được gọi là bit
. Thuật ngữ bắt nguồn từ số nhị phân (b-) (-it).Tám bit tạo thành một byte. Một từ thường là hai hoặc bốn byte.
Với một cơ sở nhỏ như vậy, cần phải sử dụng một số lượng lớn các bit để thể hiện số. Không tiện sử dụng một biểu thức như 01111011 2 để thể hiện một giá trị trần như 123 10 . Các lập trình viên thích biểu diễn số theo đơn vị byte, hoặc tám bit.
Một chữ số 4 bit cơ bản là cơ sở 16, vì bốn bit có thể biểu diễn bất kỳ giá trị nào từ 0 đến 15. Base 16 được biết đến như là hệ thống đếm hệ đếm thập lục phân . Hexadecimal thường được ký hợp đồng với chỉ đơn giản là hex. Hexadecimal sử dụng các chữ số giống nhau cho các số từ 0 đến 9. Đối với các chữ số từ 9 đến 16, hexadecimal sử dụng sáu chữ cái đầu tiên của bảng chữ cái: A cho 10, B cho 11, v.v. Do đó, 123 10
trở thành 7B 16 . 123 = 7 * 16
1 + B (tức là 11) * 16 0 = 7B 16
Bởi vì các lập trình viên thích thể hiện số 4,, 32, hoặc 64 bit, chúng tương tự thích thể hiện các số thập lục phân ở các chữ số thập lục phân 1, 2, 4 hoặc 8, ngay cả khi các chữ số hàng đầu là 0. Cuối cùng, không thuận tiện để biểu thị số hệ thập lục phân như 7B < 16 bằng cách sử dụng một subscript, bởi vì các thiết bị đầu cuối không hỗ trợ subscript. Ngay cả trên một trình xử lý văn bản, sẽ không tiện lợi khi thay đổi phông chữ đến và đi từ chế độ subscript chỉ cần gõ hai chữ số. Vì vậy, các lập trình viên sử dụng quy ước bắt đầu một số thập lục phân với một 0x (lý do cho một niềm tin kỳ lạ như vậy trở lại những ngày đầu của C). Do đó, 7B trở thành 0x7B. Sử dụng quy ước này, 0x7B bằng 123 (trong khi 0x123 bằng 291) Tất cả các toán tử toán tử có thể được thực hiện trên các số thập lục phân trong cùng một cách mà chúng được áp dụng cho số thập phân. Lý do chúng ta không thể thực hiện phép nhân như 0xC * 0xE trong phần đầu của chúng ta liên quan nhiều đến các bảng nhân mà chúng ta đã học ở trường hơn là về bất kỳ giới hạn nào trong hệ thống số.