Chuyển đến nội dung

Máy tính Độ dài Bit và Byte - Công cụ Kích thước Dữ liệu Miễn phí

Tính toán độ dài bit và byte cho các số nguyên, chuỗi thập lục phân và văn bản với các mã hóa UTF-8, UTF-16, ASCII. Công cụ trực tuyến miễn phí dành cho các nhà phát triển, nhà khoa học dữ liệu và kỹ sư mạng.

Máy tính độ dài Bit và Byte

Loại đầu vào
bit
8
byte
1

8 bit = 1 byte

Trực quan hóa

Byte 1
11111111
0xFF
Máy tính tải...
📚

Tài liệu hướng dẫn

Công cụ tính độ dài bit và byte là gì?

Công cụ tính độ dài bit và byte xác định một phần dữ liệu cần bao nhiêu bit và byte. Bit là một chữ số nhị phân, 0 hoặc 1. Byte là một nhóm gồm 8 bit. Công cụ chấp nhận số nguyên, chuỗi thập lục phân hoặc chuỗi văn bản và báo cáo kích thước chính xác theo cả hai đơn vị.

Điều này quan trọng trong lập trình, mạng máy tính và lưu trữ dữ liệu. Một cột cơ sở dữ liệu, một gói tin mạng và một tệp trên đĩa đều có kích thước được đo bằng byte, và kích thước đó phụ thuộc vào cách dữ liệu được ghi.

Cách tính độ dài bit của một số nguyên

Độ dài bit của một số nguyên dương là số chữ số trong dạng nhị phân của nó. Ví dụ, 255 ở dạng nhị phân là 11111111, có 8 chữ số, nên độ dài bit của nó là 8.

Công thức: đối với số nguyên dương n, độ dài bit là số chữ số trong biểu diễn cơ số 2 của n. Trường hợp đặc biệt n = 0 có độ dài bit là 1.

Số nguyên âm sử dụng mã bù hai, là cách tiêu chuẩn để máy tính lưu trữ các số có dấu. Độ dài bit của một số nguyên âm là số bit nhỏ nhất có thể chứa nó ở dạng bù hai. Ví dụ, −128 vừa trong 8 bit (dưới dạng 10000000), nhưng −129 cần 9 bit, vì 8 bit chỉ có thể đạt tới −128.

Khi đã biết độ dài bit, độ dài byte được xác định bằng cách làm tròn lên byte nguyên gần nhất:

Độ dài byte = ⌈độ dài bit ÷ 8⌉

Ký hiệu ⌈ ⌉ có nghĩa là “làm tròn lên”. Một giá trị 9 bit vẫn cần 2 byte đầy đủ, vì không thể chia nhỏ một byte.

Ví dụ minh họa

Số nguyênĐộ dài bitĐộ dài byte
011
25581
25692
−12881
−12992
18,446,744,073,709,551,615 (2⁶⁴ − 1)648

Cách tính độ dài bit của chuỗi thập lục phân

Mỗi chữ số thập lục phân (0–9, A–F) biểu diễn chính xác 4 bit, vì 4 bit có thể chứa 16 giá trị khả dĩ.

Công thức: độ dài bit = số chữ số thập lục phân × 4. Độ dài byte cũng được tính bằng cách chia độ dài bit cho 8 rồi làm tròn lên.

Ví dụ, chuỗi thập lục phân “FF” có 2 chữ số, nên độ dài bit là 2 × 4 = 8 bit, tương đương 1 byte. Chuỗi thập lục phân “ABCD” có 4 chữ số, cho 16 bit, tương đương 2 byte. Khoảng trắng và các ký tự trắng khác được loại bỏ trước khi đếm. Số chữ số lẻ vẫn được làm tròn lên byte nguyên: “F” là 4 bit, được công cụ báo cáo là 1 byte.

Cách tính độ dài byte của chuỗi văn bản

Đối với văn bản, kích thước phụ thuộc vào bảng mã ký tự, tức quy tắc chuyển ký tự thành byte. Công cụ hỗ trợ năm bảng mã:

  • UTF-8: bảng mã có độ dài thay đổi, được sử dụng trên toàn bộ web. Mỗi ký tự chiếm từ 1 đến 4 byte. Chữ cái tiếng Anh, chữ số và dấu câu thông thường chiếm 1 byte mỗi ký tự.
  • UTF-16: được JavaScript và Windows sử dụng nội bộ. Hầu hết ký tự chiếm 2 byte; các ký tự bên ngoài Mặt phẳng đa ngữ cơ bản, chẳng hạn như nhiều emoji, chiếm 4 byte.
  • UTF-32: bảng mã có độ dài cố định. Mọi ký tự đều chiếm chính xác 4 byte, bất kể đó là ký tự nào.
  • ASCII: bảng mã 7 bit bao phủ 128 ký tự, chủ yếu gồm chữ cái tiếng Anh, chữ số và dấu câu cơ bản. Mỗi ký tự chiếm 1 byte. Mọi ký tự nằm ngoài tập hợp này đều bị từ chối.
  • Latin-1 (ISO-8859-1): bảng mã 8 bit bao phủ 256 ký tự, bổ sung các chữ cái có dấu được sử dụng trong những ngôn ngữ Tây Âu. Mỗi ký tự chiếm 1 byte. Các ký tự nằm ngoài tập hợp này đều bị từ chối.

Công thức: độ dài byte = số byte mà bảng mã tạo ra cho chuỗi. Độ dài bit = độ dài byte × 8.

Các số đếm chỉ bao gồm phần văn bản. Không có dấu thứ tự byte được thêm vào, nên số byte của UTF-16 hoặc UTF-32 ở đây nhỏ hơn 2 hoặc 4 byte so với kết quả từ một công cụ ghi dấu này ở đầu.

Ví dụ minh họa

Văn bản “Hello, world!” có 13 ký tự, tất cả đều là chữ cái và dấu câu ASCII thông thường.

  • UTF-8: 13 byte (104 bit), vì mỗi ký tự vừa trong 1 byte.
  • UTF-16: 26 byte (208 bit), vì mỗi ký tự chiếm 2 byte.

Văn bản “こんにちは世界” (bảy ký tự tiếng Nhật) chiếm 3 byte mỗi ký tự trong UTF-8, tổng cộng 21 byte (168 bit).

Một emoji như 😀 nằm ngoài Mặt phẳng đa ngữ cơ bản. Nó chiếm 4 byte trong UTF-8, 4 byte trong UTF-16 (dưới dạng một cặp surrogate) và 4 byte trong UTF-32.

Vì sao số nguyên có dấu làm thay đổi kết quả

Máy tính lưu trữ các số âm bằng mã bù hai thay vì dấu trừ đơn thuần. Điều này có nghĩa là độ dài bit của một số nguyên âm không đơn giản bằng độ dài bit của trị tuyệt đối cộng một. Quy tắc là: độ dài bit là số bit nhỏ nhất k sao cho giá trị lớn hơn hoặc bằng −2^(k−1). Đó là lý do −128 (bằng −2⁷) vừa trong 8 bit, còn −129 cần 9 bit.

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

Làm cách nào để chuyển byte thành bit? Nhân với 8. Mười byte bằng 80 bit, vì theo định nghĩa mỗi byte chứa 8 bit.

Độ dài bit khác gì độ dài byte? Độ dài bit đếm từng chữ số nhị phân. Độ dài byte đếm các nhóm gồm 8 bit và làm tròn lên byte nguyên tiếp theo khi độ dài bit không phải là bội số của 8.

Một ký tự UTF-8 sử dụng bao nhiêu byte? Từ 1 đến 4. Các ký tự có trong ASCII sử dụng 1 byte. Nhiều ký tự Latinh, Hy Lạp và Cyrillic có dấu sử dụng 2 byte. Hầu hết ký tự tiếng Trung, tiếng Nhật và tiếng Hàn sử dụng 3 byte. Emoji và các ký hiệu hiếm khác sử dụng 4 byte.

Độ dài byte của chuỗi thập lục phân được tính như thế nào? Đếm các chữ số thập lục phân sau khi loại bỏ khoảng trắng, nhân với 4 để có số bit, rồi làm tròn lên byte nguyên. Mỗi byte tương ứng với 2 chữ số thập lục phân, nên “FF” là 1 byte và “ABCD” là 2 byte. Một chữ số đơn lẻ như “F” là 4 bit, nhưng vẫn chiếm 1 byte.

Vì sao số nguyên âm đôi khi cần nhiều bit hơn số nguyên dương tương ứng? Mã bù hai sử dụng một bit để đánh dấu dấu, nhưng bit đó dùng chung với phạm vi giá trị thay vì được cộng thêm trong mọi trường hợp. −128 vừa trong cùng 8 bit như các giá trị dương tối đa đến 127, nhưng −129 không còn vừa trong 8 bit và cần 9 bit.

Công cụ tính này chấp nhận kích thước đầu vào nào? Số nguyên, chuỗi thập lục phân và chuỗi văn bản dài tối đa 1.000.000 ký tự.

Tài liệu tham khảo

  1. "Character encoding." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Character_encoding
  2. "UTF-8, UTF-16, UTF-32 & BOM." Unicode, Inc. https://www.unicode.org/faq/utf_bom.html
  3. "Two's complement." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Two%27s_complement