TanodTools
VI

Chuyển đổi hệ cơ số

Chuyển một số nguyên giữa nhị phân, bát phân, thập phân, hex và mọi cơ số đến 36, đồng thời xem mẫu bit theo số bù hai của nó.

Chạy hoàn toàn trong trình duyệt của bạn

Số nguyên tối đa 4.096 chữ số, dương hoặc âm. Phần phân số không được chuyển đổi.

Cách chuyển đổi giữa các hệ cơ số

  1. Chọn cơ số mà số của bạn đang được viết, hoặc chọn Cơ số khác và nhập một cơ số từ 2 đến 36.
  2. Nhập số. Cho phép dấu trừ, và tiền tố 0x, 0b hoặc 0o tương ứng cũng được chấp nhận; dấu cách và dấu gạch dưới bị bỏ qua.
  3. Xem số đó ở mọi cơ số bên dưới, sao chép cơ số bạn cần, và kiểm tra bảng số bù hai cho các số nguyên có độ rộng cố định.

Hệ cơ số hoạt động thế nào

Cơ số (radix) là số chữ số khác nhau mà một hệ đếm sử dụng. Trong hệ thập phân, mỗi vị trí có giá trị gấp mười lần vị trí bên phải nó; trong nhị phân, gấp hai lần, nên 1101 nghĩa là 8 + 4 + 0 + 1 = 13. Hệ thập lục phân dùng mười sáu chữ số, từ 0 đến 9 rồi A đến F, và mỗi chữ số hex đại diện chính xác bốn chữ số nhị phân, đó là lý do lập trình viên dùng nó như cách viết gọn cho byte: 255 là FF, hay 11111111.

Bát phân gom các chữ số nhị phân thành nhóm ba và vẫn xuất hiện trong quyền tệp của Unix (755 nghĩa là rwxr-xr-x). Cơ số 36 dùng đủ mọi chữ số và chữ cái, thường gặp trong các ID ngắn và dịch vụ rút gọn URL.

Máy tính lưu số nguyên có dấu trong một số bit cố định bằng số bù hai, trong đó bit cao nhất mang trọng số âm. Vì vậy cùng các bit đó có thể mang hai giá trị khác nhau: 11001000 là 200 khi đọc như số không dấu và −56 khi đọc như số có dấu. Bảng dưới phần kết quả hiển thị cả hai cách đọc cho các kích thước số nguyên phổ biến.

Mẹo

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

Công cụ chuyển đổi được số lớn đến mức nào?

Tối đa 4.096 chữ số ở cơ số đầu vào. Việc chuyển đổi dùng phép toán số nguyên chính xác (BigInt), nên các giá trị rất lớn như 2⁶⁴ + 1 = 18446744073709551617 được chuyển đổi mà không làm tròn, khác với các máy tính chuyển sang dấu phẩy động khi vượt khoảng 9 triệu tỷ.

Có chuyển đổi được phân số như 0,1 không?

Không. Chỉ số nguyên được chuyển đổi, và dấu thập phân sẽ được báo là lỗi chứ không bị lặng lẽ bỏ đi. Nhiều phân số không có dạng chính xác ở cơ số khác: 0,1 trong hệ thập phân là một dãy lặp trong nhị phân, và đó là lý do 0,1 + 0,2 không đúng bằng 0,3 trong hầu hết ngôn ngữ lập trình.

Số bù hai cho biết điều gì?

Đó là cách máy tính lưu số nguyên có dấu trong một số bit cố định. Số âm −n được lưu là 2 lũy thừa số bit, trừ n, nên −1 trong 8 bit là 11111111 (FF). Bảng hiển thị mẫu bit cho 8, 16, 32 và 64 bit, cùng ý nghĩa của mẫu đó khi đọc như số nguyên có dấu và không dấu. Nếu số không vừa độ rộng nào, dòng đó sẽ ghi rõ thay vì tràn vòng.

Các chữ số vượt quá cơ số 10 được biểu diễn thế nào?

Bằng chữ cái, như hầu hết ngôn ngữ lập trình: A là 10, B là 11 và cứ thế đến Z là 35, nên cơ số 36 là cao nhất. Đầu vào chấp nhận chữ hoa hoặc chữ thường; tùy chọn chữ hoa quyết định định dạng đầu ra.

Vì sao một chữ số bị báo là không hợp lệ?

Mỗi cơ số chỉ cho phép các chữ số nhỏ hơn giá trị của nó: nhị phân cho phép 0 và 1, bát phân từ 0 đến 7, hex từ 0 đến 9 và từ A đến F. Thông báo lỗi nêu tên ký tự và vị trí của nó để bạn tìm ra lỗi gõ, hoặc chuyển sang đúng cơ số mà số đang được viết.