Là người thường xuyên sử dụng máy vi tính, hẳn bạn đã nghe tới thuật ngữ Bit và Byte. Vậy Bit là gì và Byte là gì? Liệu chúng có gì khác nhau? Khi nào thì ta dùng Bit và khi nào ta dùng Byte? Và đơn vị đo lường thông tin của hai đơn vị này ra sao? 1 byte bằng bao nhiêu bit? Chúng ta hãy cùng nhau đi tìm hiểu trong bài viết dưới đây. Show Bit là gì?Bit – viết tắt của binary digit, là đơn vị nhỏ nhất dùng để biểu diễn thông tin trong máy tính. Mỗi bit là một chữ số nhị phân 0 hoặc 1 thể hiện một trong hai trạng thái tắt hoặc mở tương ứng của cổng luận lí trong mạch điện tử. Cũng cần nói thêm là hệ nhị phân đã trở thành một phần kiến tạo căn bản trong máy tính ngày nay và ngôn ngữ giao tiếp cấp thấp vẫn sử dụng hệ đếm cơ số hai này. Byte là gì?Byte dùng để mô tả một dãy số bit cố định, do Werner Buchholz đưa ra trong thời gian đầu thiết kế hệ thống IBM 7030. Một byte có 8 bit, biểu thị được 256 giá trị khác nhau (2^8 = 256) đủ để lưu trữ một số nguyên không dấu từ 0 đến 255 hoặc số có dấu từ -128 đến 127. Tuy nhiên vào thời gian đầu, một số máy tính cũ hơn như IBM 1401 chỉ dùng 6 bit trong một byte cho đến cuối năm 1956, quy chuẩn về byte 8 bit mới được thiết lập. Đăng ký tên miền .COM giá rẻ nhất thị trường BKHOST đang có chương trình khuyến mãi cực shock dành cho khách hàng đăng ký mới tên miền .COM:
Đừng để đối thủ lấy mất thương hiệu của bạn trên internet. Đăng ký ngay hôm nay: đăng kí tên miền .com Một Byte bằng bao nhiêu Bit?Một Byte tương đương với 8 Bit và là đơn vị bộ nhớ nhỏ nhất có thể được xử lý trong nhiều hệ thống máy tính. Danh sách sau đây cho thấy mối quan hệ giữa tất cả các đơn vị dữ liệu khác nhau dựa trên đơn vị Bit và Byte. Bảng quy đổi Bit và ByteKhi nào dùng bit và byte ?Thông thường, byte được dùng để biểu thị dung lượng của thiết bị lưu trữ trong khi bit chủ yếu dùng để mô tả tốc độ truyền tải dữ liệu của thiết bị lưu trữ và trong mạng viễn thông. Ngoài ra, bit còn dùng để chỉ khả năng tính toán của CPU và một số khác nhưng trong giới hạn bài viết này, chúng tôi không đề cập đến. Byte được viết tắt là “B” trong khi ”b” là kí hiệu của bit và 8 bit ghép thành 1 byte. Muốn đổi từ bit sang byte thì chia giá trị đó cho 8. Chẳng hạn 1 Gb (gigabit) = 0,125 GB (gigabyte) = 125 MB. Thêm một ví dụ thực tế là mạng 4G LTE Cat 6 hiện của Hàn Quốc đạt tốc độ 300 Mbps (megabit mỗi giây), tức là về lí thuyết, thông lượng tối đa mạng có thể truyền tải là 37,5 MBps (megabyte mỗi giây). Các tiền tố được ghép vào để chỉ những đơn vị lớn hơn của bit và byte là kilo, mega (M), giga (G), tera (T), peta (P), exa (E), zetta (Z) và yotta (Y). Riêng với kilo, trong hệ thập phân sẽ dùng “k” và hệ nhị phân là “K”. Điểm cần lưu ý nữa là khi chuyển đổi, bạn đọc cần phân biệt giữa hai phân hệ là thập phân (Decimal) và nhị phân (Binary). Để tránh nhầm lẫn, một số tổ chức tiêu chuẩn như JEDEC, IEC và ISO đã đưa ra đề nghị dùng thuật ngữ thay thế là kibibyte (KiB), mebibyte (MiB), gibibyte (GiB), tebibyte (TiB) trong đo lường dữ liệu số máy tính theo hệ nhị phân. Theo đó, chẳng hạn 1 KB = 1000 byte còn 1 KiB = 1024 byte, 1 MB = 1000 KB = 1.000.000 byte còn 1 MiB = 1024 KiB = 1.048.576 byte. Tuy nhiên các đơn vị KiB, MiB… chỉ được hỗ trợ trên các hệ thống mới nhất, còn hệ thống cũ vẫn chỉ dùng KB, MB… Tốc độ truyền tải dữ liệuChuẩn giao tiếp SATA được giới thiệu lần đầu vào năm 2001 và hiện là chuẩn phổ biến dùng cho các thiết bị lưu trữ gắn trong như ổ cứng, SSD và ổ quang. SATA đã trải qua ba thế hệ với tốc độ truyền dẫn nhanh hơn, gồm SATA 1.0 có tốc độ 1,5 Gb/s, SATA 2.0 là 3 Gb/s và SATA 3.0 có tốc độ truyền dữ liệu lên tới 6 Gb/s. Nếu quy đổi từ Gb/s (gigabit mỗi giây) sang MB/s (megabyte mỗi giây) thì tốc độ truyền dữ liệu của các chuẩn SATA tương ứng lần lượt là 192, 384 và 768 MB/s. Tuy nhiên có nhiều bạn thắc mắc một số website lại ghi tốc độ SATA 1.0 là 150 MB/s, SATA 2.0 là 300 MB/s và SATA 3.0 là 600 MB/s. Vấn đề nằm ở phương thức truyền dữ liệu qua mạng. Chuẩn SATA dùng kĩ thuật mã hóa 8b/10b (là sự sắp mã theo byte, mỗi byte dữ liệu được gán thêm 1 hoặc 2 bit). Thông tin truyền nhận không chỉ có dữ liệu thực tế mà còn cả các thông tin điều khiển nhằm xác thực, đảm bảo tính toàn vẹn của dữ liệu khi gửi. Như vậy nếu loại bỏ bit thông tin gán thêm thì tốc độ tải dữ liệu thực tế của chuẩn SATA 1.0 là 150 MB/s, SATA 2.0 là 300 MB/s và SATA 3.0 là 600 MB/s như đã nêu trên. Tương tự giao tiếp PCI Express 1.0 và 2.0 cũng sử dụng phương thức mã hóa 8b/10b trong khi PCIe 3.0 áp dụng kĩ thuật “scrambling”, dùng hàm nhị phân để biểu diễn luồng dữ liệu. Chính nhờ vậy mà chuẩn PCI Express 3.0 tăng gấp đôi hiệu năng so với thế hệ 2.0 nhưng chỉ cần tốc độ bit là 8 GT/s thay vì phải cần đến 10 GT/s (gigatransfer/giây). Trên đây là một số khái niệm về Bit là gì và Byte là gì. Và đơn vị đo thông tin một byte bằng bao nhiêu bit. Cám ơn các bạn đã tham khảo bài viết. P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công. Đăng ký tên miền .COM giá rẻ nhất thị trường BKHOST đang có chương trình khuyến mãi cực shock dành cho khách hàng đăng ký mới tên miền .COM:
Đừng để đối thủ lấy mất thương hiệu của bạn trên internet. Đăng ký ngay hôm nay: đăng ký tên miền .com 2022-01-07
Hệ đếm là tập hợp các ký hiệu và qui tắc sử dụng tập ký hiệu đó để biểu diễn và xác định các giá trị các số. Mỗi hệ đếm có một số ký số (digits) hữu hạn. Tổng số ký số của mỗi hệ đếm được gọi là cơ số (base hay radix), ký hiệu là b. a. Hệ đếm cơ số bHệ đếm cơ số b (b ≥ 2 và nguyên dương) mang tính chất sau :
trong đó, số N(b) có n+1 ký số biểu diễn cho phần nguyên và m ký số lẻ biểu diễn cho phần b_phân, và có giá trị là: Trong ngành toán - tin học hiện nay phổ biến 4 hệ đếm là hệ thập phân, hệ nhị phân, hệ bát phân và hệ thập lục phân. b. Hệ đếm thập phân (Decimal system, b=10)Hệ đếm thập phân hay hệ đếm cơ số 10 là một trong các phát minh của người Ả rập cổ, bao gồm 10 ký số theo ký hiệu sau: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Qui tắc tính giá trị của hệ đếm này là mỗi đơn vị ở một hàng bất kỳ có giá trị bằng 10 đơn vị của hàng kế cận bên phải. Ở đây b=10. Bất kỳ số nguyên dương trong hệ thập phân có thể biểu diễn như là một tổng các số hạng, mỗi số hạng là tích của một số với 10 lũy thừa, trong đó số mũ lũy thừa được tăng thêm 1 đơn vị kể từ số mũ lũy thừa phía bên phải nó. Số mũ lũy thừa của hàng đơn vị trong hệ thập phân là 0. Ví dụ: Số 5246 có thể được biểu diễn như sau: 5246 = 5 x 103 + 2 x 102 + 4 x 101 + 6 x 100 = 5 x 1000 + 2 x 100 + 4 x 10 + 6 x 1 Thể hiện như trên gọi là ký hiệu mở rộng của số nguyên vì 5246 = 5000 + 200 + 40 + 6 Như vậy, trong số 5246 : ký số 6 trong số nguyên đại diện cho giá trị 6 đơn vị (1s), ký số 4 đại diện cho giá trị 4 chục (10s), ký số 2 đại diện cho giá trị 2 trăm (100s) và ký số 5 đại diện cho giá trị 5 ngàn (1000s). Nghĩa là, số lũy thừa của 10 tăng dần 1 đơn vị từ trái sang phải tương ứng với vị trí ký hiệu số, 100 = 1 101 = 10 102 = 100 103 = 1000 104 = 10000 ... Mỗi ký số ở thứ tự khác nhau trong số sẽ có giá trị khác nhau, ta gọi là giá trị vị trí (place value). Phần thập phân trong hệ thập phân sau dấu chấm phân cách thập phân (theo qui ước của Mỹ) thể hiện trong ký hiệu mở rộng bởi 10 lũy thừa âm tính từ phải sang trái kể từ dấu chấm phân cách: 101101−= 1011002−= 10110003−= ... Ví dụ: 254.68 = 2 x 102 + 5 x 101 + 4 x 100 + 6 x 10-1 + 8 x 10-2 c. Hệ đếm nhị phân (Binary system, b=2)Với cơ số b=2, chúng ta có hệ đếm nhị phân. Đây là hệ đếm đơn giản nhất với 2 chữ số là 0 và 1. Mỗi chữ số nhị phân gọi là BIT (viết tắt từ chữ BInary digiT). Vì hệ nhị phân chỉ có 2 trị số là 0 và 1, nên khi muốn diễn tả một số lớn hơn, hoặc các ký tự phức tạp hơn thì cần kết hợp nhiều bit với nhau. Ta có thể chuyển đổi số trong hệ nhị phân sang số trong hệ thập phân quen thuộc. Ví dụ: Số 11101.11(2) sẽ tương đương với giá trị thập phân là : d. Hệ đếm bát phân (Octal system, b=8)Nếu dùng 1 tập hợp 3 bit thì có thể biểu diễn 8 trị khác nhau : 000, 001, 010, 011, 100, 101, 110, 111. Các trị này tương đương với 8 trị trong hệ thập phân là 0, 1, 2, 3, 4, 5, 7. Tập hợp các chữ số này gọi là hệ bát phân, là hệ đếm với b = 8 = 23. Trong hệ bát phân, trị vị trí là lũy thừa của 8. Ví dụ: 235 . 64(8) = 2x82 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157. 8125(10) e. Hệ đếm thập lục phân (Hexa-decimal system, b=16)Hệ đếm thập lục phân là hệ cơ số b=16 = 24, tương đương với tập hợp 4 chữ số nhị phân (4 bit). Khi thể hiện ở dạng hexa-decimal, ta có 16 ký tự gồm 10 chữ số từ 0 đến 9, và 6 chữ in A, B, C, D, E, F để biểu diễn các giá trị số tương ứng là 10, 11, 12, 13, 14, 15. Với hệ thập lục phân, trị vị trí là lũy thừa của 16. Ví dụ: 34F5C(16) = 3x164 + 4x163 + 15x162 + 5x161 + 12x160 = 216294(10) Ghi chú: Một số ngôn ngữ lập trình qui định viết số hexa phải có chữ H ở cuối chữ số. Ví dụ: Số 15 viết là FH. f. Chuyển đổi một số từ hệ thập phân sang hệ đếm cơ số bĐổi phần nguyên từ hệ thập phân sang hệ bTổng quát: Lấy số nguyên thập phân N(10) lần lượt chia cho b cho đến khi thương số bằng 0. Kết quả số chuyển đổi N(b) là các dư số trong phép chia viết ra theo thứ tự ngược lại.. Ví dụ: Số 12(10) = ?(2). Dùng phép chia cho 2 liên tiếp, ta có một loạt các số dư như sau: Đổi phần thập phân từ hệ thập phân sang hệ cơ số bTổng quát: Lấy phần thập phân N(10) lần lượt nhân với b cho đến khi phần thập phân của tích số bằng 0. Kết quả số chuyển đổi N(b) là các số phần nguyên trong phép nhân viết ra theo thứ tự tính toán. I.1.2.2. Biểu diễn dữ liệu trong máy tính và đơn vị thông tina. Nguyên tắc chungThông tin và dữ liệu mà con người hiểu được tồn tại dưới nhiều dạng khác nhau, ví dụ như các số liệu, các ký tự văn bản, âm thanh, hình ảnh,… nhưng trong máy tính mọi thông tin và dữ liệu đều được biểu diễn bằng số nhị phân (chuỗi bit). Để đưa dữ liệu vào cho máy tính, cần phải mã hoá nó về dạng nhị phân. Với các kiểu dữ liệu khác nhau cần có cách mã hoá khác nhau. Cụ thể: Các dữ liệu dạng số (số nguyên hay số thực) sẽ được chuyển đổi trực tiếp thành các chuỗi số nhị phân theo các chuẩn xác định. Các ký tự được mã hoá theo một bộ mã cụ thể, có nghĩa là mỗi ký tự sẽ tương ứng với một chuỗi số nhị phân. Các dữ liệu phi số khác như âm thanh, hình ảnh và nhiều đại lượng vật lý khác muốn đưa vào máy phải số hoá (digitalizing). Có thể hiểu một cách đơn giản khái niệm số hoá như sau: các dữ liệu tự nhiên thường là quá trình biến đổi liên tục, vì vậy để đưa vào máy tính, nó cần được biến đổi sang một dãy hữu hạn các giá trị số (nguyên hay thực) và được biểu diễn dưới dạng nhị phân. Với các tín hiệu như âm thanh, video, hay các tín hiệu vật lý khác, qui trình mã hoá được biểu diễn như sau: Hình I.2.1.1.a. Quá trình số hoá tín hiệu vật lý Tuy rằng mọi dữ liệu trong máy tính đều ở dạng nhị phân, song do bản chất của dữ liệu, người ta thường phân dữ liệu thành 2 dạng:
b. Đơn vị thông tinĐơn vị nhỏ nhất để biểu diễn thông tin gọi là bit. Một bit tương ứng với một sự kiện có 1 trong 2 trạng thái. Ví dụ: Một mạch đèn có 2 trạng thái là:
Số học nhị phân sử dụng hai ký số 0 và 1 để biểu diễn các số. Vì khả năng sử dụng hai số 0 và 1 là như nhau nên một chỉ thị chỉ gồm một chữ số nhị phân có thể xem như là đơn vị chứa thông tin nhỏ nhất. Bit là chữ viết tắt của BInary digiT. Trong tin học, người ta thường sử dụng các đơn vị đo thông tin lớn hơn như sau:
I.1.2.3. Biểu diễn số nguyênSố nguyên gồm số nguyên không dấu và số nguyên có dấu. Về nguyên tắc đều dùng 1 chuỗi bit để biểu diễn. Đối với số nguyên có dấu, người ta sử dụng bit đầu tiên để biểu diễn dấu ‘-‘ và bit này gọi là bit dấu. a. Số nguyên không dấuTrong biểu diễn số nguyên không dấu, mọi bit đều được sử dụng để biểu diễn giá trị số. Ví dụ 1 dãy 8 bit biểu diễn số nguyên không dấu có giá trị: 28 = 256 số nguyên dương, cho giá trị từ 0 (0000 0000) đến 255 (1111 1111). Với n bits ta có thể biểu diễn 1 số nguyên có giá trị lớn nhất là 2n-1 và dải giá trị biểu diễn được từ 0 đến 2n-1. Thí dụ: 00000000 = 0 00000010 = 2 00000100 = 4 …………. 11111111 = 255 b. Số nguyên có dấuTrong biểu diễn số nguyên có dấu, bit đầu làm bít dấu: 0 là số dương và 1 cho số âm. Số nguyên có dấu thể hiện trong máy tính ở dạng nhị phân là số dùng 1 bit làm bít dấu, người ta qui ước dùng bit ở hàng đầu tiên bên trái làm bit dấu (S): 0 là số dương và 1 cho số âm. Cách phổ biến biểu diễn số âm có dấu là dùng mã bù hai: Số bù hai được tính như sau:
Thí dụ biểu diễn trên 8 bits: 37 = 00100101 Bù một (nghịch đảo) = 11011010 Bù hai (cộng thêm 1) 1 11011011 số -37 Bit dấu Chú ý: Thử biểu diễn mã bù hai của -37 để thu được số +35 c. Tính toán số học với số nguyênCộng/ trừ số nguyênCộng/ trừ số nguyên không dấuKhi cộng hai số nguyên không dấu n bits ta thu được một số nguyên không dấu cũng n bits. Vì vậy,
Thí dụ với trường hợp 8 bits, tổng nhỏ hơn 255 thì ta sẽ có kết quả đúng: Để tránh hiện tượng tràn số này ta phải sử dụng nhiều bit hơn để biểu diễn. Cộng/trừ số nguyên có dấuSố nguyên có dấu được biểu diễn theo mã bù hai, vậy qui tắc chung như sau:
Nhân/ chia số nguyênSo với phép cộng và phép trừ, phép nhân và phép chia phức tạp hơn nhiều. Dưới đây, chỉ giới thiệu phép nhân/phép chia với số nhị phân. Ví dụ sau mô tả phép nhân hai số nhị phân: 10001111 kết quả 143 trong cơ số 10 Chúng ta có một số nhận xét sau:
Phép chia phức tạp hơn phép nhân nhưng dựa trên cùng 1 nguyên tắc. Hãy xem thí dụ sau: Phép chia với số nguyên sẽ cho 2 kết quả là thương và phần dư.BUỔI 2. I.1.2.4. Biểu diễn số thựca. Nguyễn tắc chungĐể biểu diễn số thực, trong máy tính người ta dùng ký pháp dấu phảy động (Floating Point Number). Một cách tổng quát, một số thực biểu diễn theo cách này gồm 3 thành phần: N = M x RE Với M: phần định trị (Mantissa), N là cơ số: (Radix), còn E là phần số mũ (Exponent) Cơ số thường được sử dụng là cơ số 2 hay cơ số 10, còn M và E biểu diễn theo kiểu số nguyên. Thực tế, người ta chỉ cần lưu trữ M và E. Ví dụ, với cơ số R = 10, giả sử 2 số thực N1 và N2 được lưu trữ theo phần định trị và số mũ như sau: M1 = -15 và E1 = +12 M2 = +314 và E2 = -9 Có nghĩa là N1 = M1 x 10 E1 = -15x10E1 = -15 000 000 000 000 và N2 = M2 x 10 E2 = 314 x 10-9 = 0.000 000 314 Rõ ràng rằng, việc lưu trữ phần đinh trị và phần số mũ sẽ dễ dàng và đơn giản nhiều so với việc lưu trữ giá trị đúng của nó. Khi thực hiện phép toán với số dấu chấm động sẽ được tiến hành trên cơ sở các giá trị của phần định trị và phần mũ. Giả sử có 2 số dấu phẩy động sau: N1 = M1 x RE1 và N2 = M2 x RE2 khi đó, việc thực hiện các phép toán số học sẽ được tiến hành: N1 ± N2 = (M1 x RE1-E2 ± M2) x RE2, giả thiết E2 ≥ E1 N1 x N2 = (M1x M2) x RE1+E2 N1 /N2 = (M1 / M2) / RE1-E2 Chú ý: Với số thực biểu diễn theo dấu phẩy động trên :
Từ công thức trên, ta nhận thấy rằng cách biểu diễn này không bao giờ cho giá trị bằng không, vì thế, có một số trường hợp phải qui ước:
b. Chuẩn IEEE754/85Việc biểu diễn trong dấu phảy động theo chuẩn IEEE được hình dung như sau:
phần dấu chấm thập phân
Chú ý: có sự khác nhau giữa biểu diễn dấu phảy động trên main frame :
Thí dụ: số thực +5 sẽ được biểu diễn như sau: 510 = 1012 = 1012 x 20 = (1.01)2 x 22 và phần mũ sẽ là 1.012 -12 = 0.012. Nếu 1012 trượt phải 2 bít sẽ trở thành 1.012, 2-2 lần từ giá trị ban đầu. Với mục đích chuẩn hóa, 2 được cộng thêm vào phần mũ 0 và phần mũ có giá trị là 2. Do vậy, khi mà phần mũ là 2 cộng thêm phần bias 127 sẽ là 129 và mũ biểu diễn là 100000012. I.1.2.5. Biểu diễn ký tựa. Nguyên tắc chungTrong máy tính, các ký tự cũng cần được chuyển đổi thành chuỗi bit nhị phân gọi là mã của các ký tự đó. Số bit dùng cho mỗi ký tự theo các mã khác nhau là khác nhau. Bộ mã ASCII (Amercan Standard Codes for Information Interchangeable) dùng 8 bit cho 1 ký tự, bộ mã Unicode dùng 16 bit. Đây là 2 bộ mã thông dụng. Thí dụ, với bộ mã ASCII, chữ A có mã là 65 = 01000001. Ngoài hai bộ mã trên, còn có các bộ mã khác:
b. Bộ mã ASCIIASCII là bộ mã được dùng để trao đổi thông tin chuẩn của Mỹ. Lúc đầu chỉ dùng 7 bit (128 ký tự) sau đó mở rộng cho 8 bit và có thể biểu diễn 256 ký tự khác nhau trong máy tính. Trong bộ mã hoá 8 bit, các mã từ 32 đến 126 biểu diễn cho các ký tự hiển thị được gồm 52 ký tự la tinh: 26 thường và 26 hoa.. Tiếp theo là 10 mã cho 10 chữ số (mã 30 đến mã 39). Còn lại cho các ký tự phân cách, dấu phép toán. Chú ý là 32 mã đầu tiên và (00 đến 1F0 và mã cuối cùng 127 (trong bộ mã chuẩn 128 mã) biểu diễn cho các thông tin điều khiển. Các mã mở rộng từ 128 đến 255 là tập các ký tự có thể thay đổi được bởi các nhà chế tạo máy tính hoặc các nhà phát triển phần mềm. Bộ mã ASCII đuợc minh hoạ qua bảng dưới đây: BẢNG MÃ ASCII với 128 ký tự đầu tiên
BẢNG MÃ ASCII với 128 ký tự kế tiếp
c. Bộ mã UnicodeNgày nay, máy tính đã toàn cầu hoá, việc trao đổi thông tin ngày càng mở rộng. Để đáp ứng nhu cầu toàn cầu hoá này, vào những năm 90 của thế kỷ trước, các hãng hàng đầu về máy tính đưa ra bộ mã 16 bít mang tên Unicode. Vậy số ký tự có thể biểu diễn (mã hoá) là 216-1. |