Chuyển Đổi Cơ Số
Chuyển đổi số giữa các hệ cơ số khác nhau (2-36). Công cụ chuyển đổi cơ số trực tuyến miễn phí hỗ trợ nhị phân, bát phân, thập phân, thập lục phân và bất kỳ cơ số nào lên đến 36.
Chuyển Đổi Cơ Số - Chuyển Đổi Số Giữa Các Hệ Thống Số Khác Nhau
Công cụ chuyển đổi cơ số mạnh mẽ này cho phép bạn chuyển đổi số giữa bất kỳ cơ số nào từ 2 đến 36. Dù bạn đang làm việc với hệ nhị phân (cơ số 2), bát phân (cơ số 8), thập phân (cơ số 10), thập lục phân (cơ số 16), hay bất kỳ hệ số nào khác, công cụ này cung cấp chuyển đổi tức thì với các bước tính toán chi tiết.
Hệ thập lục phân (cơ số 16) là gì và tại sao dùng trong lập trình?
Hệ thập lục phân, hay hex, là hệ cơ số 16 dùng 16 ký hiệu riêng biệt: chữ số 0-9 theo sau là các chữ cái A-F (trong đó A=10, B=11, C=12, D=13, E=14, F=15). Lập trình viên dùng hex vì nó ánh xạ hoàn hảo sang nhị phân: mỗi chữ số hex biểu diễn chính xác 4 bit nhị phân, nên một byte (8 bit) trở thành chính xác hai ký tự hex. Số 255 (giá trị byte tối đa) là FF trong hex, gọn gàng hơn nhiều so với 11111111 trong nhị phân. Hex xuất hiện khắp nơi trong tin học: địa chỉ bộ nhớ (0x7FFE), màu HTML (#FF5733 đỏ), địa chỉ MAC (00:1B:44:11:3A:B7), mã lỗi và ngôn ngữ assembly. Tiền tố 0x biểu thị hex trong C, Python, JavaScript và hầu hết ngôn ngữ lập trình. Hex chỉ là viết tắt của nhị phân — máy tính luôn làm việc với nhị phân, hex chỉ làm cho người đọc dễ hiểu.
Làm sao đổi nhị phân (cơ số 2) sang thập phân (cơ số 10) bằng tay?
Mỗi chữ số nhị phân (bit) biểu diễn một lũy thừa của 2, bắt đầu từ 2^0 bên phải và gấp đôi khi di chuyển sang trái. Để chuyển đổi, nhân mỗi bit với lũy thừa 2 tương ứng và cộng kết quả. Ví dụ: nhị phân 1011 = (1 nhân 8) + (0 nhân 4) + (1 nhân 2) + (1 nhân 1) = 8 + 0 + 2 + 1 = 11 thập phân. Ví dụ khác: nhị phân 11010100 = 128 + 64 + 0 + 16 + 0 + 4 + 0 + 0 = 212. Các vị trí bit là 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, gấp đôi mãi. Nhớ các lũy thừa 2 này đến 1024 và chuyển đổi nhị phân trở nên rất nhanh. Đi ngược lại, lặp lại chia thập phân cho 2, ghi số dư, và đọc từ dưới lên — cho bạn biểu diễn nhị phân.
Hệ bát phân (cơ số 8) là gì và còn dùng ngày nay không?
Bát phân là hệ cơ số 8 dùng chữ số 0 đến 7. Mỗi chữ số bát phân biểu diễn chính xác 3 bit nhị phân, khiến bát phân là cách viết nhị phân gọn gàng trước khi hex trở thành chủ đạo. Bát phân được dùng rộng rãi trên các kiến trúc máy tính 12-bit và 36-bit cũ (PDP-8, PDP-10, IBM mainframe) nơi kích thước từ chia hết cho 3. Ngày nay bát phân phần lớn được thay thế bởi hex nhưng vẫn tồn tại ở hai nơi quan trọng: quyền tập tin Unix/Linux (chmod 755 nghĩa là rwx r-x r-x trong bát phân nơi mỗi chữ số là 3 bit quyền), và trong một số code C/C++ nơi số 0 đứng đầu chỉ bát phân (077 = 63 thập phân, không phải 77). Cẩn thận: 010 trong C là thập phân 8, không phải 10 — nguồn lỗi kinh điển. JavaScript đã bỏ bát phân cổ điển nhưng hỗ trợ cú pháp 0o10 cho rõ ràng.
Cơ số lớn nhất mà công cụ này hỗ trợ là bao nhiêu và tại sao?
Công cụ này hỗ trợ cơ số từ 2 (nhị phân) đến 36 (chữ và số). Cơ số 36 là cơ số lớn nhất có thể viết bằng chỉ các ký tự chữ và số tiêu chuẩn: chữ số 0-9 (10 ký hiệu) cộng chữ cái A-Z (26 ký hiệu), tổng cộng 36 ký hiệu. Số 35 trong cơ số 36 là Z, 36 là 10, 100 trong cơ số 36 bằng 1296 trong thập phân. Cơ số 36 thỉnh thoảng được dùng cho rút gọn URL và mã hóa ID gọn gàng vì nó tạo chuỗi ngắn hơn cơ số 10. Vượt quá cơ số 36, hệ thống mã hóa dùng ký hiệu bổ sung: cơ số 58 (địa chỉ Bitcoin, loại các ký tự gây nhầm như 0/O và 1/l), cơ số 62 (chữ-số phân biệt hoa thường, 10 + 26 + 26), cơ số 64 (RFC 4648, thêm + và /), cơ số 85 (Adobe ASCII85), và cơ số 91 (mã hóa văn bản hiệu quả). Vượt quá ~256, bạn hết ký tự ASCII in được.

Thuật toán chuyển đổi thực sự hoạt động từng bước như thế nào?
Chuyển đổi giữa các cơ số tùy ý dùng thập phân làm trung gian chung. Bước 1, nguồn-sang-thập-phân: nhân mỗi chữ số với cơ số nguồn nâng lên lũy thừa vị trí của nó (bên phải nhất là vị trí 0). Hex 2F = (2 nhân 16^1) + (15 nhân 16^0) = 32 + 15 = 47. Bước 2, thập-phân-sang-đích: lặp lại chia cho cơ số đích, ghi số dư, sau đó đọc số dư từ dưới lên. Thập phân 47 sang nhị phân: 47/2=23 dư 1, 23/2=11 dư 1, 11/2=5 dư 1, 5/2=2 dư 1, 2/2=1 dư 0, 1/2=0 dư 1. Đọc từ dưới lên: 101111. Xác minh: 32+0+8+4+2+1=47. Cho số rất lớn, máy tính này dùng số học BigInt nên không tràn ở giới hạn số JavaScript (2^53). Cho số thập phân/phân số, nhân phần phân số với cơ số đích thay vì chia.
Tại sao nhị phân (cơ số 2) là nền tảng của mọi máy tính kỹ thuật số?
Nhị phân chỉ dùng hai ký hiệu (0 và 1), ánh xạ hoàn hảo sang hai trạng thái ổn định của công tắc điện tử: tắt/bật, điện áp thấp/cao, không-dòng/dòng. Bản chất nhị phân này là điều khiến mạch số đáng tin cậy — một transistor hoàn toàn bật hoặc hoàn toàn tắt, không có trạng thái trung gian mơ hồ có thể đọc nhầm. Claude Shannon đã chứng minh năm 1937 rằng bất kỳ logic Boolean nào cũng có thể được triển khai bằng công tắc nhị phân, và George Boole đã phát triển đại số logic cơ bản năm 1854. Mặc dù máy tính tam phân (cơ số 3) thử nghiệm đầu tiên đã tồn tại (Setun của Liên Xô năm 1958), chúng không cung cấp lợi thế thực tế và yêu cầu mạch phức tạp hơn. Máy tính lượng tử dùng qubit chồng chập 0 và 1, nhưng cuối cùng vẫn sụp đổ về đo nhị phân. Mọi ảnh, video, tài liệu và chương trình trên thiết bị của bạn cuối cùng là chuỗi dài các số 0 và 1.
Bù hai là gì và số âm được lưu trong nhị phân như thế nào?
Máy tính dùng bù hai để biểu diễn số âm trong nhị phân, trong đó bit trái nhất chỉ dấu (0 = dương, 1 = âm). Để phủ định một số: lật tất cả bit, sau đó cộng 1. Ví dụ, trong bù hai 8-bit: +5 là 00000101, -5 là 11111011 (lật thành 11111010, cộng 1). Hệ thống này có một số không (không phải +0 và -0), hỗ trợ cùng mạch cộng cho có dấu và không dấu, và cho thêm một giá trị âm (phạm vi 8 bit -128 đến +127). Bù hai giải thích tại sao tràn số nguyên trong C bị quay vòng: 127 + 1 trong 8-bit có dấu trở thành -128, không phải 128. Giá trị dương lớn nhất trong n bit là 2^(n-1) - 1, nhỏ nhất là -2^(n-1). Số nguyên có dấu 32-bit nằm trong khoảng -2,1 tỷ đến +2,1 tỷ, 64-bit từ khoảng -9,2 triệu tỷ đến +9,2 triệu tỷ.
Sự khác biệt giữa mã hóa cơ số (Base64) và chuyển đổi cơ số là gì?
Chuyển đổi cơ số thay đổi cách một số đơn lẻ được viết: 255 trong cơ số 10 bằng FF trong cơ số 16 bằng 11111111 trong cơ số 2 — cùng giá trị, ký hiệu khác. Mã hóa cơ số (như Base64, Base58, Base85) khác: nó mã hóa dữ liệu nhị phân tùy ý thành ký tự văn bản in được, dùng cho tệp đính kèm email (MIME), URL, JSON Web Token, nhúng ảnh (data:image/png;base64,...) và địa chỉ Bitcoin. Base64 lấy 3 byte (24 bit) và xuất 4 ký tự từ bảng chữ cái 64 ký hiệu (A-Z, a-z, 0-9, +, /), tăng kích thước 33% nhưng đảm bảo truyền an toàn qua hệ thống chỉ xử lý văn bản. Base32 (RFC 4648) được dùng trong mã xác thực TOTP. Base58 (Bitcoin) loại các ký tự gây nhầm mặt 0/O/I/l. Công cụ này xử lý chuyển đổi cơ số (thay đổi cách một số được viết), không phải mã hóa cơ số (chuyển đổi dữ liệu nhị phân thành văn bản).
Bảng Tham Chiếu Cơ Số Thường Dùng
| Thập Phân | Nhị Phân | Bát Phân | Thập Lục Phân | Cơ Số 36 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 | 2 |
| 3 | 11 | 3 | 3 | 3 |
| 4 | 100 | 4 | 4 | 4 |
| 5 | 101 | 5 | 5 | 5 |
| 6 | 110 | 6 | 6 | 6 |
| 7 | 111 | 7 | 7 | 7 |
| 8 | 1000 | 10 | 8 | 8 |
| 9 | 1001 | 11 | 9 | 9 |
| 10 | 1010 | 12 | A | A |
| 15 | 1111 | 17 | F | F |
| 16 | 10000 | 20 | 10 | G |
| 31 | 11111 | 37 | 1F | V |
| 32 | 100000 | 40 | 20 | W |
| 35 | 100011 | 43 | 23 | Z |
| 36 | 100100 | 44 | 24 | 10 |
| 255 | 11111111 | 377 | FF | 73 |
| 1000 | 1111101000 | 1750 | 3E8 | RS |
