Hệ thập lục phân – Du Học Trung Quốc 2022 – Wiki tiếng Việt – DUHOCTRUNGHOA.COM

Từ nguyên

Anh ngữ

Chính IBM đã lựa chọn tiền tố , thay vì của tiếng Latinh. Tên gọi là một tên gọi xa lạ, vì nguyên có gốc từ (έξι) trong tiếng Hy Lạp & có nghĩa là “sáu”, còn lại có gốc Latinh & có nghĩa là “mười”. Có thể cũng từng được lấy từ tiếng Latinh, song chữ của Hy Lạp lại gần với chữ của Latinh hơn, nên có một số quan điểm nghĩ rằng cách đặt tên này có sự bất nhất nào đấy. Một từ cổ hơn nữa là nghe có lẽ Latinh nhưng không đúng (từ Latinh đúng là , có nghĩa là 16). Từ này đã được đổi vì một số người nghĩ rằng việc dùng từ đó là quá mạo hiểm, vì từ này còn tồn tại một nghĩa khác là “gốc 60”. Tuy nhiên, chữ (gốc 60) vẫn còn giữ lại được nhóm tiền tố của nó. Trong ebook trước đó của dòng sản phẩm tính Bendix, từ cũng có được dùng đến. Ông Steven Schwartzman có ghi lại: “Vì từ là một từ tương đối dài, nên nhiều khi nó được viết tắt là “. Từ – thập lục phân – là một từ dị thường, vì nó là từ ghép bởi tiết tố của hai thứ tiếng Latinh & Hy Lạp. Từ nguyên gốc Latinh phải là , song những kẻ tấn công laptop (hackers), có thể bị đề xuất & dẫn dụ bằng từ đó mà gọi tắt nó thành . Giáo sư & nhà khoa học laptop Donald Knuth có nêu ra rằng theo đúng nghĩa của từ thì tên của nó phải là , một từ gốc Latinh với nghĩa là “nhóm 16”. Những từ (nhị phân), (tam phân) & (tứ phân) đều được tổ hợp từ gốc Latinh cả, & theo đúng nghĩa thì từ (thập phân) lẽ ra phải là (hệ mười).

Mấy năm ngoái đây, một hệ thống các ký tự khác của hệ thập lục phân, cụ thể, không nhập nhèm, đã được đề cử.

Biểu thị số thập lục phân

Áp dụng

Hệ thập lục phân được dùng thông dụng trong lập trình HTML & CSS (tạm dịch là Chương mục định hình tuần tự). Những lập trình này dùng bộ tam kết thập lục phân () biểu thị màu sắc trong các website, khởi đầu bằng một dấu “#”. Dấu này còn được dùng để biểu thị các số thập lục phân nửa. Khi biểu thị màu sắc với 24 bit, phương thức #RRGGBB (“Đỏ, Vàng, Xanh”) được dùng để trổ tài. Trong phương thức này, “RR” (tiếng Anh là “Red Red”) biểu thị phân hợp màu đỏ, “GG” (“Green Green”) biểu thị phân hợp màu vàng (lẽ ra phải gọi là màu xanh lá cây, song gọi là vàng để phân biệt với phân hợp kế tiếp, màu xanh lam), & “BB” (“Blue Blue”) biểu thị phân hợp màu xanh (lam) của tổ hợp tam phần, đại diện cho sắc độ của một màu. Lấy chẳng hạn, một dáng màu đỏ với giá trị thập phân (238, 9, 63) được mã hóa sang hệ thập lục phân là #EE093F. Phương pháp này được copy từ tổ chức màu sắc trong hệ thống cửa sổ Ҳ ().

Hệ thập lục phân còn được dùng trong kỹ thuật laptop trên nhiều góc cạnh chung chung khác, & là một bí quyết thông thường nhất để diễn tả giá trị của một byte, dùng dãy các ký tự (), mà loài người ai cũng có thể đọc được. Toàn bộ các giá trị của một byte (bao gồm 256 giá trị) đều có thể được biểu thị bằng hệ thập lục phân. Một số người nghĩ rằng bí quyết dùng hệ ASCII 8-bit, để biểu thị giá trị, là một bí quyết khả thi, song bí quyết này không toàn diện, vì hệ ASCII còn bao gồm những ký tự không in ấn được (có cách gọi khác là các ký tự điều khiển ()), không phù hợp cho mục đích.

Trong các dòng liên connect URL, những chữ đặc biệt có thể được biểu thị bằng cách sử dụng mã thập lục phân, đi đầu bằng dấu % (%), ví dụ http://vi.wikipedia.org/wiki/Trang%20Ch%C3%ADnh.

Phương pháp quy định cách viết địa chỉ IPv6, đại diện mỗi nhóm số gồm 16 bit, bằng những số thập lục phân, hòng khiến cho việc đọc, & copy các địa chỉ dài 128-bit được đơn giản hơn.

Phân số

Cũng giống như các hệ đếm khác, hệ thập lục phân cũng có thể dùng để biểu thị phân số (), song chu kỳ thập phân tái diễn () thường xảy ra, do số 16 chỉ có một thừa số nguyên tố:

1/ 0x1 =0x11/ 0x5 =0x0.31/ 0x9 =0x0.1C71/ 0xD =0x0.13B1/ 0x2 =0x0.81/ 0x6 =0x0.2A1/ 0xA =0x0.191/ 0xE =0x0.12491/ 0x3 =0x0.51/ 0x7 =0x0.2491/ 0xB =0x0.1745D1/ 0xF =0x0.11/ 0x4 =0x0.41/ 0x8 =0x0.21/ 0xC =0x0.151/ 0x10 =0x0.1

Do cơ số 16 là bình phương của 4 (4²), phân số thập lục phân có chu kỳ lặp lại cá biệt, xảy ra nhiều lần hơn, đối với những số thập phân. Chu kỳ thập phân xảy ra khi mẫu số, với thừa số thấp nhất (), có một thừa số nguyên tố không thấy ở trong hàng cơ số. Trong trường hợp số thập lục phân, toàn bộ những phân số có mẫu số không phải là tích của một số mũ 2, sẽ tạo ra một chu kỳ thập phân tái diễn.

Buồn cười

Hệ thập lục phân đôi lúc được dùng trong các trò đùa cợt của các lập trình viên, vì một số từ có thể được hình thành bằng các con số thập lục phân. Một số từ này trong tiếng Anh là “dead” (chết), “beef” (thịt bò), “babe” (người yêu nhỏ bé) &, với những thế tự thích hợp, từ “c0ffee” (cà phê). Trang này là một chẳng hạn điển hình những trò đùa cợt này. Do khả năng dễ nhận thấy của những từ xếp đặt kiểu này, kiểm duyệt thiết lập () thường dùng chúng để ráp giá trị bắt đầu cho những tiểu tiết trong bộ nhớ lưu trữ, giúp các lập trình viên tìm thấy những tiểu tiết chưa được ráp giá trị bắt đầu (). Một số người thêm chữ “H” vào đằng sau một con số để biểu thị con số ấy là một số thập lục phân. Quy luật này cũng đôi lúc được dùng trong ngữ pháp của từ ngữ lập trình assembly cổ của Hãng sản xuất Intel. Với đuôi “H”, người ta có thể viết những từ & câu mới, ví dụ 1517ADEADB17CH.

Một chẳng hạn nữa là con số ma () trong các tiệp của hệ thống phân bổ FAT Mach-Σ & các chương trình Java, con số này là “CAFEBABE” (cô bé quán cà phê).

Cái ngân phiếu của Knuth có giá trị là một $ trong hệ thập lục phân (256 xu = 162), tức là $2.56.

Bảng liệt kê sau đây chính là một trò đùa với hệ thập lục phân:

3×12=36
2×12=24
1×12=12
0x12=18

Ba vị trí thứ nhất tiên là tích của số 12, trong lúc hàng cuối cùng “0x12” trong thập lục phân lại là 18.

Giá trị 0xdeadbeef (“ox dead beef” – trâu chết [thành] thịt bò) đôi lúc được gài vào bộ nhớ lưu trữ chưa được ráp giá trị bắt đầu ().

Triển khai sang hệ nhị phân

Khi làm việc với máy vi tính, tất cả chúng ta thường phải giải quyết dữ liệu nhị phân, song giải quyết con số trong hệ thập lục phân lại đơn giản hơn đối với hệ nhị phân (toàn số chỉ có 0 & 1) rất là nhiều. Trong lúc tất cả chúng ta thông thuộc với hệ thập phân hơn các hệ cơ số khác, việc thay đổi số từ hệ nhị phân sang hệ thập lục phân lại dễ hơn là việc biến chúng sang hệ thập phân, vì mỗi một số thập lục phân tương tự với 4 bit nhị phân (410).

Hãy thử xem xét việc thay đổi số 11112 sang hệ thập phân. Vì mỗi địa điểm của một con số trong hệ nhị phân (cơ số 2) chỉ cho phép giá trị 0 hay 1 mà thôi, việc định giá trị của con số tại địa điểm ấy, tính từ bên phải, là một việc tương đối đơn giản:

  • 00012 = 110
  • 00102 = 210
  • 01002 = 410
  • 10002 = 810

Chính vì vậy:

11112 = 810 + 410 + 210 + 110 = 1510

Đây là một con tính dễ dàng, nhưng cũng từng đòi hỏi bốn tính cộng, trong lúc với một tí luyện tập, 11112 có thể được chuyển thẳng sang F16 mà chỉ cần một phép tính (xem Biểu thị số thập lục phân). Khi số nhị phân là một số lớn, việc đổi chúng sang số thập phân là một việc dông dài, tẻ nhạt. Khi đổi số nhị phân sang thập lục phân, tất cả chúng ta chỉ dễ dàng chia nhóm các con số thành những nhóm 4, chuyển mỗi nhóm 4 này thành một số thập lục phân, giữ nguyên địa điểm tương ứng của nhóm. Chẳng hạn sau đây chứng tỏ việc chuyển nhị phân sang thập phân dông dài như vậy nào:

010111101011010100102 = 26214410 + 6553610 + 3276810 + 1638410 + 819210 + 204810 + 51210 + 25610 + 6410 + 1610 + 210 = 38792210

So sánh chẳng hạn trên với việc chuyển cùng con số sang hệ thập lục phân:

010111101011010100102 = 010111101011010100102 = 5EB5216 = 5EB5216

Tất cả chúng ta cũng có thể đổi thẳng từ hệ thập lục phân quay trở lại nhị phân như chẳng hạn trên.

Dùng số bát phân cũng là một cách hữu hiệu để giải quyết dữ liệu trong máy vi tính (nhóm 3 bit thay vì nhóm 4); song, cái lợi lớn nhất của thập lục phân đối với bát phân là, để biểu thị một byte (octet), tất cả chúng ta chỉ cần đúng hai con số thập lục phân là đủ. Điều này có nghĩa là nếu tất cả chúng ta có giá trị của một word (thường là 4 byte), việc nhận biết giá trị riêng của từng byte một là một việc khá đơn giản; trái lại, nếu tất cả chúng ta có giá trị của từng byte một, tất cả chúng ta cũng có thể đơn giản ráp chúng lại thành một word.

Đổi gốc từ các hệ số khác

Phép chia lấy số dư trong cơ số nguồn

Cách thức đổi một số sang hệ thập lục phân được thực hiện cũng giống như bí quyết được vận dụng cho các hệ cơ số khác, bằng cách dùng phép chia lấy số nguyên & số dư trong hệ cơ số nguồn. Trên lý thuyết, bí quyết này có thể vận dụng được với bất kì (một cặp) hệ cơ số nào. Song nói chung theo thói quen sử dụng của loài người & trong kỹ thuật laptop, bí quyết này được vận dụng với hệ thập phân & nhị phân. (So với hệ nhị phân, người ta còn tồn tại những bí quyết nhanh gọn hơn nữa.)

Ví dụ, nếu lấy {d} là số thập phân cần phải được đổi, thì dãy số hihi-1...h2h1 là những con số để trình diễn số ở hệ thập lục phân tương ứng. Với phương pháp tính dãy н như sau:

1. Hi:= {d} mod 16

(“mod” (modulus (tiếng Anh)): phép chia lấy dư, thực hiện phép chia số nguyên & lấy kết quả là số dư – ví dụ 17 mod 5 = 217/5 = 3, dư 2.)
2.

? := {d} − н ι 16 {displaystyle {begin{matrix}?:={frac {{d}-h_{ι}}{16}}end{matrix}}}

 

3. Nếu {d} == 0 thì kết quả là dãy số н); nếu như không, quay trở lại bước 1.

Phần sau đây giới thiệu chu trình của thuật toán trên, lập trình bằng từ ngữ JavaScript, dùng để biến bất kì một số thập phân nào sang hệ thập lục phân, kết quả trả về là một string (dãy các ký tự). Mục đích của chẳng hạn là minh họa chu trình của thuật toán (có thể dựa theo đấy để vận dụng cho các tác dụng giải quyết khác). Để vận dụng thuật toán này với dữ liệu rõ ràng và cụ thể, có thể dùng các toán tử trong phép toán thao tác bit.

function

toHex

(

{d}

)

{

/* thay đổi sang hệ thập lục phân */

var

r

=

{d}

%

16

;

if

(

{d}

-

r

==

)

{

return

toChar

(

r

);}

else

{

return

toHex

((

{d}

-

r

)

/

16

)

+

toChar

(

r

);}

}

function

toChar

(

ɳ

)

{

/* thay đổi số nguyên sang ký tự có thể đọc & in ấn được */

var

alpha

=

"0123456789ABCDEF"

;

return

alpha

.

charAt

(

ɳ

);

}

Cần cảnh báo rằng cơ số “16” dùng ở trên có thể được thay thế bằng bất kì cơ số nào (ví dụ hệ nhị phân (2), tam phân (3), bát phân (8) ?.?..). Sau đây là thủ tục được minh họa bằng từ ngữ ₵++ để in ra một số ở hệ bất kể tương ứng với một số thập phân nhận vào.

const

alpha

=

"0123456789ABCDEF"

;

void

printinbase

(

long

{d}

,

short

ɓ

)

{

// in ra số ở hệ cơ số ɓ tương ứng với số thập phân {d})

short

r

=

{d}

%

ɓ

;

if

(

{d}

-

r

)

printinbase

(

{d}

/

ɓ

,

ɓ

);

cout

<<

alpha

[

r

];

}

Phép cộng & tính nhân trong hệ thập lục phân

Tất cả chúng ta có thể thay đổi bằng cách phân giải giá trị của địa điểm của từng con số (hàng nhà cung cấp, hàng chục, hàng trăm trong hệ thập phân ví dụ), rồi biến mỗi giá trị ấy sang giá trị tương ứng của hệ thập lục phân, sau đó làm phép cộng hay nhân trên con số ấy để được kết quả trong hệ thập lục phân. (khi làm tính nhân, nên có sẵn một bảng cửu chương trong hệ tương ứng (thập lục phân) để dễ đối chiếu – vì hầu hết chỉ biết bảng cửu chương trong hệ thập phân mà thôi). (Number system – Computer Methods in Chemical Engineering Lưu trữ 2006-06-19 tại Wayback Machine)

Chẳng hạn: 12310 + 45610

 10010 + 2010 + 310  + 40010 + 5010 + 610 ----------------------hay 6416 + 1416 + 316  + 19016 + 3216 + 616 ---------------------- 1F416 + 4616 + 916 11  (Nhớ)  ------------- 1F416  50010  + 4616  + 7010   916   910  -----   ----- 24316  57910

Phép đổi thông qua hệ nhị phân

máy vi tính nói chung dùng hệ nhị phân, nên bí quyết đổi của dòng sản phẩm thường là thông qua hệ nhị phân trước đã, sau đó dùng sự thông nối trực tiếp giữa thập lục phân & nhị phân, mà đổi sang hệ thập lục phân.

Hệ thập lục phân trong con mắt của giới tạp chí & phim ảnh

Trong bộ phim thiếu nhi nhiều tập , tập có tựa đề Treehouse of Horror VI (Ngôi nhà kinh dị trên cây VI), nhân vật Homer lọt vào tầng không gian thứ 3, (), một dãy các số thập lục phân (46 72 69 6e 6b 20 52 75 6c 65 73 21) bập bồng trên không tại “vùng đất của không gian 3 chiều ” (3-? land). Đối chiếu những giá trị thập lục phân này trong bản ASCII cho tất cả chúng ta các con chữ mà khi ghép lại, nó biến thành một dòng chữ tiếng Anh “Frink rules!” (loại trừ hai dấu ngoặc kép mà thôi) – nghĩa là “Frink trị vì!” hoặc “Frink là vua”.

Trong chương trình TV ReBoot, có một nhân vật với tên gọi Hexadecimal (hệ thập lục phân).

Đọc thêm

Đọc qua

Link ngoài

Xem Thêm  Cách căn giữa văn bản theo chiều dọc với CSS - căn chỉnh văn bản theo chiều dọc css

Viết một bình luận