Máy tính đổi cơ số DEC BIN HEX OCT

Máy tính đổi cơ số (radix) online giữa DEC (10), BIN (2), OCT (8), HEX (16). Hỗ trợ cả số nguyên và số thập phân. Áp dụng cho lập trình viên, học sinh tin học, kỹ sư điện tử.

Máy tính

Đổi giữa hệ thập phân (10), nhị phân (2), bát phân (8), thập lục phân (16).

Công thức & ví dụ

4 cơ số phổ biến:

Cơ số Ký hiệu Ký tự Dùng cho
2 BIN 0, 1 Máy tính, mạch điện tử
8 OCT 0-7 Lập trình cũ (Unix)
10 DEC 0-9 Đời sống, toán học
16 HEX 0-9, A-F Màu CSS, địa chỉ MAC, bytes

Đổi DEC sang cơ số b: chia liên tiếp số cho b, ghi PHẦN DƯ, đọc NGƯỢC.

Ví dụ — Đổi 156 sang BIN:

156 / 2 = 78 dư 0
78 / 2 = 39 dư 0
39 / 2 = 19 dư 1
19 / 2 = 9 dư 1
9 / 2 = 4 dư 1
4 / 2 = 2 dư 0
2 / 2 = 1 dư 0
1 / 2 = 0 dư 1
→ 10011100 (đọc ngược)

Bảng tra HEX:

DEC BIN HEX
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

Một số quy đổi thường gặp:

  • 255 = 11111111₂ = FF₁₆ (1 byte tối đa)
  • 1024 = 10000000000₂ = 400₁₆ (1 KB)
  • 65535 = FFFF₁₆ (2 bytes tối đa, port number)

Hướng dẫn sử dụng

  1. Chọn cơ số nguồn và đích.
  2. Nhập số. Số HEX dùng A-F (Vd FF, 1A2B).
  3. Nhấn “Đổi”. Kết quả + các bước trung gian (chia liên tiếp).

Nguyên lý vị trí số — tại sao cùng một giá trị lại viết khác nhau ở mỗi cơ số?

Mỗi hệ đếm đều dùng nguyên lý vị trí số (positional notation): giá trị của một chữ số phụ thuộc vào vị trí của nó trong dãy, với mỗi vị trí là một lũy thừa của cơ số. Trong hệ thập phân (DEC), số 156 thực ra là 1×10² + 5×10¹ + 6×10⁰ = 100 + 50 + 6. Trong hệ nhị phân (BIN), số 100111001×2⁷ + 0×2⁶ + 0×2⁵ + 1×2⁴ + 1×2³ + 1×2² + 0×2¹ + 0×2⁰ = 128 + 16 + 8 + 4 = 156 — cùng một giá trị, chỉ khác cách viết.

Đây là lý do HEX (cơ số 16) đặc biệt hữu ích trong khoa học máy tính: mỗi chữ số HEX biểu diễn đúng 4 bit nhị phân. Số FF₁₆ = 11111111₂ = 255 trong thập phân — một byte đầy đủ. Thay vì đọc 8 chữ số 0/1, lập trình viên chỉ cần nhớ 2 ký tự HEX. Để tính số bit cần thiết để biểu diễn một giá trị N, bạn dùng công thức số bit = ⌈log₂(N+1)⌉ — và công cụ logarit online trên VJOL tính log₂ trực tiếp mà không cần chuyển đổi thủ công.

Cách dùng công cụ đổi cơ số trên VJOL

Công cụ hỗ trợ chuyển đổi hai chiều giữa bất kỳ cặp cơ số nào trong bộ BIN–OCT–DEC–HEX:

  1. Nhập giá trị nguồn: Gõ số cần đổi vào ô tương ứng. Với HEX, nhập ký tự A–F bằng chữ hoa hoặc chữ thường đều được.
  2. Chọn cơ số nguồn: Chọn BIN, OCT, DEC hoặc HEX tùy theo số bạn đang có.
  3. Đọc kết quả: Công cụ hiển thị đồng thời giá trị tương đương ở tất cả cơ số còn lại — không cần chuyển đổi từng bước.
  4. Tùy chọn nâng cao: Một số phiên bản hiển thị thêm phép tính từng bước (bảng chia lấy dư hoặc khai triển lũy thừa) để kiểm tra kết quả học tập.

Công cụ xử lý số nguyên dương. Với số âm (biểu diễn bù 2 trong BIN) hoặc số thực (dấu phẩy động), cần áp dụng quy tắc riêng không có trong phạm vi công cụ cơ bản này.

Ứng dụng thực tế — từ mã màu CSS đến địa chỉ bộ nhớ

Hệ HEX xuất hiện ở khắp nơi trong lập trình và thiết kế kỹ thuật số. Bốn tình huống thường gặp nhất:

  • Mã màu CSS: Màu #3B5998 (xanh Facebook) gồm ba cặp HEX — 3B = 59 (kênh đỏ), 59 = 89 (kênh xanh lá), 98 = 152 (kênh xanh dương) — mỗi kênh RGB có giá trị 0–255 tức 0–FF. Mã HEX chỉ có 7 ký tự (kể cả dấu #), gọn hơn nhiều so với rgb(59, 89, 152) khi viết CSS hàng trăm dòng.
  • Địa chỉ MAC (mạng): Địa chỉ MAC như 00:1A:2B:3C:4D:5E gồm 6 byte viết dưới dạng HEX, phân cách bằng dấu hai chấm. Mỗi cặp ký tự là 1 byte = 8 bit.
  • Địa chỉ bộ nhớ và debug: Trong C/C++ và Python, tiền tố 0x báo hiệu số HEX — ví dụ 0xFF = 255. Khi debug lỗi bộ nhớ (segfault), địa chỉ hiển thị dạng 0x00007fff5fbff830.
  • Số cổng mạng (port): Cổng HTTPS là 443 = 0x01BB₁₆; cổng tối đa 65535 = FFFF₁₆ (2 byte). Biết quy đổi giúp đọc hiểu file cấu hình mạng ở dạng hex dump.

Sai lầm thường gặp khi đổi cơ số

Ba lỗi phổ biến nhất, đặc biệt khi làm bài tập lập trình hoặc kiểm tra:

  • Đọc xuôi thay vì đọc ngược kết quả phép chia: Thuật toán chia lấy dư cho kết quả từ bit thấp (LSB) đến bit cao (MSB) — phải đọc ngược dãy phần dư mới ra đúng số. Đọc xuôi 156→BIN cho 00111001, đọc ngược mới cho 10011100 đúng.
  • Nhầm chữ số hợp lệ theo cơ số: BIN chỉ dùng 0 và 1; OCT chỉ dùng 0–7; HEX dùng 0–9 và A–F. Nhập 8 vào ô BIN hay G vào ô HEX là lỗi cú pháp.
  • Bỏ các số 0 đầu trong BIN làm mất thông tin byte: Về giá trị toán học, 1001110010011100 bằng nhau. Nhưng trong lập trình, khi làm việc với byte (8 bit) hoặc word (16/32 bit), phải giữ đủ số bit. FF trong HEX = 11111111 (8 bit), không phải 1111111 (7 bit).

Đổi cơ số là nền tảng của nhiều bài toán tổ hợp trong khoa học máy tính — ví dụ đếm số chuỗi nhị phân k bit là bài toán 2^k hoặc tổ hợp. Nếu bạn cần tính nhanh công cụ tổ hợp chỉnh hợp online trên VJOL cho các bài toán xác suất hoặc mật mã, công cụ này hỗ trợ C(n,k) và A(n,k) chỉ với hai ô nhập liệu.

Câu hỏi thường gặp

Tại sao máy tính dùng BIN thay vì DEC?

Vì mạch điện tử chỉ có hai trạng thái: có điện (1) và không điện (0). Biểu diễn nhị phân phù hợp trực tiếp với vật lý transistor, không cần mạch phức tạp để phân biệt 10 mức điện áp khác nhau.

HEX và BIN liên quan như thế nào — có thể chuyển trực tiếp không?

Có, và đây là lý do HEX phổ biến trong lập trình. Mỗi chữ số HEX tương đương chính xác 4 bit BIN: F = 1111, A = 1010. Đổi FA sang BIN chỉ cần ghép: 1111 1010, không cần tính chia.

OCT (cơ số 8) hiện nay còn dùng không?

Ít hơn trước, nhưng vẫn còn trong hệ thống Unix/Linux cho quyền file: chmod 755 hay chmod 644 là các số OCT biểu diễn quyền đọc/ghi/thực thi cho chủ sở hữu, nhóm và người khác.

Số âm được biểu diễn thế nào trong BIN?

Máy tính dùng phương pháp bù 2 (two’s complement): đảo toàn bộ bit của số dương rồi cộng thêm 1. Với số 8 bit, −1 được biểu diễn là 11111111. Công cụ đổi cơ số cơ bản chỉ xử lý số nguyên dương, không hỗ trợ bù 2.

Máy tính đổi cơ số trên VJOL chuyển đổi tức thì giữa BIN, OCT, DEC và HEX — không cần tính tay từng bước chia lấy dư. Dùng để kiểm tra bài tập lập trình, giải mã mã màu CSS, đọc địa chỉ bộ nhớ hay tra cứu giá trị byte trong giao thức mạng đều được trong vài giây.

Xem thêm các công cụ liên quan

Câu hỏi thường gặp

Tại sao máy tính dùng BIN?

Vì transistor (linh kiện cơ bản máy tính) chỉ có 2 trạng thái: ON/OFF, tương ứng 1/0. BIN match natural với phần cứng. Máy tính lưu mọi thứ (text, image, video, code) đều dạng chuỗi bits 0 và 1.

HEX dùng làm gì trong web?

Mã màu CSS: #FF5733 = đỏ cam (R=255, G=87, B=51). Mỗi cặp HEX = 1 byte = 0-255. Còn dùng cho: địa chỉ MAC (00:1A:2B:...), ARGB color, hash MD5/SHA, địa chỉ memory dump trong debug.

BIN và OCT khác gì?

OCT (cơ số 8) gọn hơn BIN: 3 bits BIN = 1 chữ số OCT. Vd 11010101₂ = 325₈ (gọn hơn 8 ký tự xuống 3). HEX (cơ số 16) còn gọn hơn: 4 bits = 1 chữ HEX. Hiện đại dùng HEX phổ biến hơn OCT. OCT chỉ còn trong Unix permissions (777 = full access).