Đổi hệ cơ số

Nhị phân, hex, mọi hệ 2–36, bù hai, bit số thực, số La Mã và mã Morse.

Chữ số 0–9 rồi a–z. Dấu cách và gạch dưới được bỏ qua, có thể có dấu trừ, 0b/0o/0x dùng được ở hệ 10. Một dấu chấm bắt đầu phần thập phân.

Kết quả

Nhị phân (hệ 2)

1111 1111

Bát phân (hệ 8)

377

Thập phân (hệ 10)

255

Thập lục phân (hệ 16)

FF

Hệ 36

73

Công cụ này làm gì

Năm bộ chuyển đổi cho những cách viết số khác nhau, mỗi bộ một thẻ:

  • Hệ cơ số. Nhập một số ở bất kỳ hệ nào từ 2 đến 36 và đọc nó ở hệ nhị phân, bát phân, thập phân, thập lục phân và thêm một hệ bạn chọn. Số nguyên được đổi bằng số học số lớn chính xác, nên một số 600 chữ số vẫn đúng tới chữ số cuối. Phần lẻ cũng được đổi chính xác: các chữ số hoặc dừng lại, hoặc có một khối lặp mãi, được ghi trong ngoặc.
  • Bù hai. Chọn 8, 16, 32 hoặc 64 bit để thấy cùng một dãy bit khi đọc là số có dấu và không dấu, dạng hex và nhị phân, kèm các bước "đảo bit rồi cộng một" cho số âm và dãy bit được mở rộng dấu sang kiểu rộng hơn.
  • Số thực IEEE 754. Xem một số thập phân được lưu thế nào dưới dạng float 32 bit hay double 64 bit: dấu, số mũ, phần định trị, loại giá trị (chuẩn, dưới chuẩn, không, vô cực, NaN), đủ mọi chữ số của giá trị thực sự được lưu và sai số làm tròn. Công cụ cũng làm ngược lại, từ bit hex ra giá trị.
  • Số La Mã từ 1 đến 3999 theo cả hai chiều, kiểm tra chặt dạng chuẩn, và dạng vinculum tới 3.999.999.
  • Mã Morse hai chiều theo ITU-R M.1677-1, có âm thanh phát ở tốc độ bạn chọn.

Cách dùng thẻ hệ cơ số

  1. Nhập số. Dấu cách và gạch dưới được bỏ qua, nên 1111_0000 hay FF FF đều dùng được. Có thể có dấu trừ.
  2. Chọn hệ mà số đang được viết. Ở hệ 10, tiền tố 0b, 0o và 0x chuyển sang nhị phân, bát phân và hex. Ở hệ 16 chúng không được hiểu là tiền tố, vì 0b1 là một số hex hợp lệ (B1).
  3. Đọc kết quả. Nhị phân và hex được nhóm 4 chữ số từ phải sang, bát phân và thập phân nhóm 3; nút sao chép chép các chữ số không có dấu cách.

Ví dụ: 255 là 1111 1111 ở hệ nhị phân, 377 ở hệ bát phân, FF ở hệ hex và 73 ở hệ 36 (7 × 36 + 3). Số 0,1 ở hệ nhị phân là 0.0(0011): khối 0011 lặp mãi, và đó chính là lý do 0,1 không thể lưu chính xác trong số thực nhị phân. Số 3,14 ở hệ hex là 3.2(3D70A). Nếu phần lẻ không dừng cũng không lặp trong 64 chữ số, nó bị cắt (không làm tròn) và đánh dấu bằng "…".

Bù hai và số thực, nói ngắn gọn

Một dãy 8 bit có nghĩa từ 0 đến 255 khi đọc không dấu, hoặc từ −128 đến 127 khi đọc có dấu: các dãy có bit cao nhất bằng 1 biểu diễn giá trị trừ đi 256. Vì vậy 1111 1011 là 251 không dấu và −5 có dấu. Tính tay: −5 là 5 (0000 0101), đảo bit (1111 1010), cộng một (1111 1011). Công cụ từ chối giá trị không vừa, ví dụ 128 với kiểu 8 bit có dấu, và nêu rõ giới hạn. Khi mở rộng một dãy âm, bit dấu được chép sang: −1 là FF ở 8 bit và FFFF ở 16 bit.

Số thực lưu một dấu, một lũy thừa của 2 và một phần định trị. Nhập 0,1 dạng float32 cho ra bit 3DCCCCCD, giá trị chính xác là 0.100000001490116119384765625, lớn hơn khoảng 1,49 phần tỷ. Ở dạng double bit là 3FB999999999999A và giá trị lưu là 0.1000000000000000055511151231257827021181583404541015625. Số thập phân được làm tròn một lần từ giá trị chính xác của nó tới giá trị biểu diễn được gần nhất, hòa thì về số chẵn. Chi tiết này quan trọng với float32: đi qua double trước có thể làm tròn hai lần và lệch một bước, điều mà bộ kiểm thử kiểm tra bằng một ví dụ thật.

Giải thích đầy đủ với ví dụ tính tay có trong bài hex, nhị phân và số bù hai.

Số La Mã và mã Morse

Số La Mã dùng dạng chuẩn hiện đại: I, V, X, L, C, D, M, chỉ với sáu cặp trừ (IV, IX, XL, XC, CD, CM). Số viết như IIII hay IC bị từ chối và công cụ gợi ý cách viết chuẩn (IV, XCIX). Trên 3999 không có một dạng thống nhất; công cụ viết phần nghìn dưới gạch ngang (vinculum, nhân 1000), nên 4000 là I̅V̅ và 12.345 là X̅I̅I̅CCCXLV. Một số tài liệu viết thêm chữ M thay vào.

Mã Morse theo khuyến nghị ITU-R M.1677-1: chữ cái, chữ số và dấu câu trong bảng của khuyến nghị, gồm cả é và @. Dấu nhân được gửi bằng X và dấu phần trăm bằng 0/0 đúng như khuyến nghị; ký tự khác được liệt kê là không có tín hiệu. Mỗi chấm dài 1200 ÷ WPM mili giây, tính theo từ chuẩn PARIS dài đúng 50 đơn vị chấm. Giãn cách Farnsworth giữ tốc độ chữ nhanh và chỉ kéo dài khoảng nghỉ, giúp ích khi tập nghe chép.

Mọi thứ chạy trong trình duyệt của bạn. Với mã hóa văn bản thay vì số, hãy dùng công cụ Base64; với phép tính lũy thừa và logarit, dùng máy tính khoa học; với mã màu hex, dùng công cụ màu sắc.

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

Vì sao 0,1 không đổi ra một số nhị phân ngắn?

Vì 0,1 là 1/10, mà 10 có thừa số 5, thứ hệ nhị phân không chia hết được. Các chữ số lặp mãi: 0.0(0011). Máy tính phải cắt đi, nên 0,1 được lưu thành một giá trị gần đó, 0.100000001490116119384765625 ở float32.

Đổi số rất lớn có chính xác không?

Có. Số nguyên được đổi bằng số học số lớn, hoàn toàn không làm tròn, tới 2.000 chữ số. Phần lẻ cũng chính xác: kết quả dừng, lặp (ghi trong ngoặc) hoặc bị cắt sau 64 chữ số và đánh dấu bằng dấu ba chấm.

Có dấu và không dấu khác nhau thế nào?

Các bit không khác gì, chỉ khác cách đọc. Ở 8 bit, 1111 1111 là 255 không dấu và −1 có dấu theo bù hai. Số 8 bit có dấu chạy từ −128 đến 127, không dấu từ 0 đến 255.

Số thực dưới chuẩn (subnormal) là gì?

Là số nhỏ hơn số thực chuẩn nhỏ nhất, được lưu với trường số mũ bằng 0 và không có bit 1 ẩn ở đầu. Nó đổi độ chính xác lấy phạm vi gần số không. Số dưới chuẩn float32 nhỏ nhất khoảng 1,4 × 10⁻⁴⁵ (bit 00000001).

20 từ mỗi phút trong mã Morse nhanh cỡ nào?

Mỗi chấm dài 1200 ÷ 20 = 60 mili giây, mỗi gạch 180. Từ PARIS kèm khoảng nghỉ sau nó dài 50 đơn vị chấm, nên 20 từ như vậy lấp đúng một phút.