1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Hệ thập lục phân 1234

11 955 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 261,12 KB

Nội dung

Hệ thập lục phân Mục lục Hệ thập lục phân 1.1 Từ nguyên 1.1.1 1.2 Biểu thị số thập lục phân 1.3 Ứng dụng 1.4 Phân số 1.5 Hài hước 1.6 Triển khai sang hệ nhị phân 1.7 Đổi gốc từ hệ số khác 1.7.1 Phép chia lấy số dư số nguồn 1.7.2 Phép cộng tính nhân hệ thập lục phân 1.7.3 Phép đổi thông qua hệ nhị phân 1.8 Hệ thập lục phân mắt giới báo chí phim ảnh 1.9 Xem thêm 1.10 am khảo 1.11 Liên kết Học tăng cường 2.1 Các thuật toán 2.2 Nghiên cứu 2.3 am khảo 2.4 Liên kết 2.5 Nguồn, người đóng góp, giấy phép cho văn hình ảnh 2.5.1 Văn 2.5.2 Hình ảnh 2.5.3 Giấy phép nội dung Anh ngữ i Chương Hệ thập lục phân Trong toán học khoa học điện toán, hệ thập lục phân (hay hệ đếm số 16, tiếng Anh: hexadecimal), đơn gọi thập lục, hệ đếm có 16 ký tự, từ đến A đến F (chữ hoa chữ thường nhau) Hệ thống thập lục phân dùng, công ty IBM giới thiệu với giới điện toán vào năm 1963 Một phiên cũ hệ thống này, dùng số từ đến 9, chữ A đến F, sử dụng máy tính Bendix G-15, mắt năm 1956 (computer hackers), bị gợi ý dẫn dụ từ mà gọi tắt thành sex Giáo sư nhà khoa học máy tính Donald Knuth có theo nghĩa từ tên phải senidenary, từ gốc Latinh với nghĩa “nhóm 16” Những từ binary (nhị phân), ternary (tam phân) quaternary (tứ phân) tổ hợp từ gốc Latinh cả, theo nghĩa từ decimal (thập phân) đáng phải denary (hệ mười) Mấy năm trước đây, hệ thống ký tự khác hệ thập lục phân, rõ ràng, không nhập nhèm, đề cử (Cf Hexadecimal time) Ví dụ, số thập phân 79, với biểu thị nhị phân 01001111, viết thành 4F hệ thập lục phân (4 = 0100, F = 1111) 1.2 Biểu thị số thập lục phân Chú ý bảng sau: hex = thập lục phân dec = thập phân Một vài số thập lục phân hoàn toàn giống với số hệ thập phân (kể người máy vi tính) Vì mà chúng thường ký hiệu theo quy tắc định oct = bát phân 1.1 Từ nguyên 1.1.1 Dưới dạng in ấn, ký hiệu hệ thường định hậu tố, chẳng hạn 5A316 , 5A3SIXTEEN, 5A3HEX Anh ngữ Trong ngôn ngữ lập trình cho máy vi tính - luôn dùng văn đơn (plain text), phân biệt chữ viết trên, chữ viết in ấn - nhiều cách để đánh dấu số hệ thập lục phân xuất Những cách đánh dấu thấy chữ in, đặc biệt nội dung có liên quan đến ngôn ngữ lập trình Chính IBM lựa chọn tiền tố hexa, thay sexa tiếng Latinh Cái tên hexadecimal tên xa lạ, hexa nguyên có gốc từ hexi (έξι) tiếng Hy Lạp có nghĩa “sáu”, decimal lại có gốc Latinh có nghĩa “mười” Có thể hexa lấy từ tiếng Latinh, song chữ deka Hy Lạp lại gần với chữ decem Latinh hơn, nên có số ý kiến cho cách đặt tên có bất Một từ cổ sexidecimal nghe Latinh không (từ Latinh sedecim, có nghĩa 16) Từ đổi số người cho việc dùng từ mạo hiểm, từ có nghĩa khác “gốc 60” Tuy vậy, chữ sexagesimal (gốc 60) giữ lại nhóm tiền tố Trong tài liệu trước máy tính Bendix, từ sexadecimal có dùng đến Ông Steven Schwartzman có ghi lại: “Vì từ hexadecimal từ tương đối dài, nên nhiều viết tắt hex" Từ hexadecimal - thập lục phân - từ bất thường, từ ghép tiết tố hai thứ tiếng Latinh Hy Lạp Từ nguyên gốc Latinh phải sexadecimal, song kẻ công máy tính Một số ký dụng thường thấy ngôn ngữ: • Ada VHDL gói số thập lục phân dùng gốc hệ, điểm số biểu đạt gốc, chẳng hạn "16#5A3#" (Chú ý: Ada chấp nhận phương thức ký dụng cho hệ, từ nhị phân thập lục phân, cho hai loại số nguyên (integer) số thực (real)) • C ngôn ngữ lập trình có ngữ pháp tương ứng (như C++, C#, Java Javascript) dùng tiền tố “0x” cho số thập lục phân, chẳng hạn “0x5A3” Số không (0) dẫn đầu dùng để lọc mã (parser) trực tiếp nhận biết số, CHƯƠNG HỆ THẬP LỤC PHÂN chữ “x” đại biểu cho chữ hexadecimal (thập lục phân) - (đối chiếu với đại diện cho bát phân (octal)) Chữ “x” tiền tố “0x” viết hoa (0X) viết thường (0x), song thường thấy viết thường dòng chữ kiểu chữ đánh máy (typewriter type), ví dụ: 5A3 • Các shell *nix (phần mềm dùng để thao tác mệnh lệnh với máy tính, hệ điều hành tương tự UNIX) dùng mã escape tổ hợp ký tự "\x0FF” biểu thức (expression), dùng “0xFF” số (constant) • Trong HTML, ký hiệu hệ thập lục phân biểu thị với cách dùng chữ “x": ֣ tương đương ֣ – với trình duyệt web bạn ֣ theo thứ tự; (dấu tiếng Hebrew Hebrew accent munah) Các mã định màu sắc dùng hệ thập lục phân thường biểu đạt với tiền tố "#", chẳng hạn "#FFFFFF” (màu trắng) • Một vài ngôn ngữ assembly định thập lục phân cách cho thêm chữ “h” vào đuôi (nếu số bắt đầu chữ, đồng thời đứng sau số 0, định số), chẳng hạn “0A3Ch”, “5A3h” • • • • Một bảng cửu chương thập lục phân Vì quy định thống nên tất quy ước dùng, đôi khi, viết Song quy ước chúng rõ ràng biệt lập nên có trắc trở xảy Postscript định thập lục phân dùng tiền tố “16#" Ký hiệu thường dùng (và thường gặp) tiền tố “0x” ký hiệu viết số 16 xuống (subscriptCommon Lisp dùng tiền tố "#x” "#16r” based), số thập lục phân Chẳng hạn hai số Pascal, assembler khác (AT&T, Motorola), 0x2BAD 2BAD16 đại diện cho số thập phân vài phiên BASIC dùng tiền tố "$", 11181 (hoặc 1118110 ) chẳng hạn "$5A3” Trong thời kỳ đầu lịch sử máy tính, lựa chọn chữ từ A đến F để thay cho Ngôn ngữ lập trình Smalltalk dùng tiền tố “16r” số tiếp theo, chưa chấp nhận toàn Chú ý Smalltalk chấp nhận biểu thức r - gốc hệ số số từ đặt máy tính, ưa lựa chọn cách dùng số từ đến 5, trở lên (ví dụ: 2r1110 10r14 16rE), với với cấu mã (macron), để biểu thị giá trị từ hạn chế thực tiễn ký tự số 10 đến 15 Những người dùng máy tính Bendix lại nằm ký tự ASCII, 0-9 A-Z dùng chữ “U” đến chữ “Z” Một số phiên Smalltalk cho phép số thập phân đứng sau dấu chấm ".” biểu đạt số chấm động thập lục phân (floating point number) 1.3 Ứng dụng (và gốc hệ số khác nữa) • Một số phiên BASIC, đặc biệt ngôn ngữ biến thể Microso tạo QBasic Visual Basic, tiền tố để biểu đạt số thuộc hệ thập lục phân, "&H”, ví dụ: "&H5A3"; khác BBC BASIC dùng "&" (được dùng để biểu đạt hệ bát phân (octal) BASIC Microso) Hệ thập lục phân dùng phổ biến lập trình HTML CSS (tạm dịch Chương mục định hình tuần tự) Những lập trình dùng tam kết thập lục phân (hex triplet) biểu thị màu sắc trang web, bắt đầu dấu "#" Dấu dùng để biểu thị số thập lục phân nửa Khi biểu thị màu sắc với 24 bit, công thức #RRGGBB ("Đỏ, Vàng, Xanh”) dùng để thể Trong công thức này, “RR” (tiếng • Những ký hiệu X'5A3' thấy; Anh “Red Red”) biểu thị phân hợp màu đỏ, “GG” PL/I dùng ký hiệu (“Green Green”) biểu thị phân hợp màu vàng (đáng • Donald Knuth giới thiệu cách dùng loại chữ phải gọi màu xanh cây, song gọi vàng để phân khác để biểu diễn số hệ đếm biệt với phân hợp tiếp theo, màu xanh lam), “BB” sách ông e TeXbook Trong hệ thống ký (“Blue Blue”) biểu thị phân hợp màu xanh (lam) tổ hiệu ông, số thập lục phân biểu đạt hợp tam phần, đại diện cho sắc độ màu Lấy ví 1.6 TRIỂN KHAI SANG HỆ NHỊ PHÂN dụ, dáng màu đỏ với giá trị thập phân (238, 9, 63) mã hóa sang hệ thập lục phân #EE093F Công thức chép từ tổ chức màu sắc hệ thống cửa sổ X (X Window System) vào đằng sau số để biểu thị số số thập lục phân y luật dùng ngữ pháp ngôn ngữ lập trình assembly cổ Intel Với đuôi “H”, người ta viết từ câu Hệ thập phân dùng kỹ thuật máy tính mới, chẳng hạn 1517ADEADB17CH nhiều khía cạnh chung chung khác, Một ví dụ số ma (magic number) phương pháp thông thường để biểu đạt giá trị tiệp hệ thống phân bổ FAT Mach-O chương byte, dùng dãy ký tự (string), mà người trình Java, số “CAFEBABE” (cô bé quán cà đọc Tất giá trị byte phê) (bao gồm 256 giá trị) biểu thị hệ Cái ngân phiếu Knuth có giá trị đô la thập lục phân Một số người cho phương pháp hệ thập lục phân (256 xu = 162 ), tức $2.56 dùng hệ ASCII 8-bit, để biểu thị giá trị, phương pháp khả thi, song phương pháp không toàn diện, Bảng liệt kê sau trò đùa với hệ thập hệ ASCII bao gồm ký tự không in lục phân: (còn gọi ký tự điều khiển (control characters)), không thích hợp cho mục đích 3x12=36 2x12=24 Trong dòng liên kết nối URL, chữ đặc biệt biểu thị cách dùng mã thập lục phân, 1x12=12 dẫn đầu dấu phần trăm (%), chẳng hạn http://vi 0x12=18 wikipedia.org/wiki/Trang%20Ch%C3%ADnh Công thức quy định cách viết địa IPv6, đại diện Ba hàng tích số 12, hàng cuối nhóm số gồm 16 bit, số thập lục phân, hòng “0x12” thập lục phân lại 18 làm cho việc đọc, chép địa dài 128-bit Giá trị 0xdeadbeef (“ox dead bee” - trâu chết [thành] dễ dàng thịt bò) gài vào nhớ chưa ráp giá trị khởi đầu (uninitialized memory) 1.4 Phân số 1.6 Triển khai sang hệ nhị phân Tương tự hệ đếm khác, hệ thập lục phân dùng để biểu thị phân số (vulgar fraction), song Khi làm việc với máy vi tính, thường phải xử chu kỳ thập phân tái diễn (recurring digits) thường xảy lý liệu nhị phân, song xử lý số hệ thập lục ra, số 16 có thừa số nguyên tố: phân lại dễ dàng so với hệ nhị phân (toàn số có Do số 16 bình phương (4²), phân số thập lục 1) nhiều Trong thông thuộc với phân có chu kỳ lặp lại cá biệt, xảy nhiều lần hơn, so hệ thập phân hệ số khác, việc biến đổi số với số thập phân Chu kỳ thập phân xảy từ hệ nhị phân sang hệ thập lục phân lại dễ việc mẫu số, với thừa số thấp (denominator in lowest biến chúng sang hệ thập phân, số thập lục terms), có thừa số nguyên tố không thấy phân tương đương với bit nhị phân (410 ) hàng số Trong trường hợp số thập lục phân, tất Hãy thử cân nhắc việc biến đổi số 11112 sang hệ thập phân số có mẫu số tích phân Vì vị trí số hệ nhị phân số mũ 2, tạo nên chu kỳ thập phân tái diễn (cơ số 2) cho phép giá trị hay mà thôi, việc định giá trị số vị trí ấy, tính từ bên phải, việc tương đối dễ dàng: 1.5 Hài hước Hệ thập lục phân dùng trò đùa cợt lập trình viên, số từ tạo dựng số thập lục phân Một số từ tiếng Anh “dead” (chết), “bee” (thịt bò), “babe” (người yêu bé bỏng) và, với tự phù hợp, từ “c0ffee” (cà phê) Trang ví dụ điển hình trò đùa cợt Do khả dễ nhận biết từ xếp kiểu này, kiểm duyệt cài đặt (debugging setup) thường dùng chúng để ráp giá trị khởi đầu cho tiểu tiết nhớ, giúp lập trình viên tìm tiểu tiết chưa ráp giá trị khởi đầu (not initialised) Một số người thêm chữ “H” • 00012 = 110 • 00102 = 210 • 01002 = 410 • 10002 = 810 Vì vậy: Đây tính đơn giản, đòi hỏi bốn tính cộng, với chút luyện tập, 11112 chuyển thẳng sang F16 mà cần phép tính (xem Biểu thị số thập lục phân) Khi số nhị CHƯƠNG HỆ THẬP LỤC PHÂN phân số lớn, việc đổi chúng sang số thập phân việc dài dòng, tẻ nhạt Khi đổi số nhị phân sang thập lục phân, đơn giản chia nhóm số thành nhóm 4, chuyển nhóm thành số thập lục phân, giữ nguyên vị trí tương ứng nhóm Ví dụ sau chứng tỏ việc chuyển nhị phân sang thập phân dài dòng nào: Phần sau giới thiệu chu trình thuật toán trên, lập trình ngôn ngữ JavaScript, dùng để biến số thập phân sang hệ thập lục phân, kết trả string (dãy ký tự) Mục đích ví dụ minh họa chu trình thuật toán (có thể dựa vào để áp dụng cho công dụng xử lý khác) Để áp dụng thuật toán với liệu cụ thể, dùng So sánh ví dụ với việc chuyển số sang hệ toán tử phép toán thao tác bit function toHex(d) { /* biến đổi sang hệ thập lục phân */ thập lục phân: Chúng ta đổi thẳng từ hệ thập lục phân var r = d % 16; if(d-r==0) {return toChar(r);} else {return toHex((d-r)/16)+toChar(r);} } function toChar(n) { quay trở lại nhị phân ví dụ /* biến đổi số nguyên sang ký tự đọc in Dùng số bát phân cách hữu dụng để xử */ var alpha = “0123456789ABCDEF"; return lý liệu máy vi tính (nhóm bit thay nhóm alpha.charAt(n); } 4); song, lợi lớn thập lục phân so với bát phân là, để biểu thị byte (octet), cần hai số thập lục phân đủ Điều có nghĩa Cần lưu ý số “16” dùng thay có giá trị word (thường số (chẳng hạn hệ nhị phân (2), byte), việc nhận giá trị riêng byte tam phân (3), bát phân (8) v.v ) Sau thủ tục việc dễ dàng; ngược lại, có giá trị minh họa ngôn ngữ C++ để in số hệ bất byte một, dễ dàng ráp kì tương ứng với số thập phân nhận vào chúng lại thành word const alpha = “0123456789ABCDEF"; void printinbase(long d, short b) { // in số hệ số b tương ứng với số thập phân d) short r=d%b; if (d-r) printinbase(d/b,b); cout

Ngày đăng: 13/08/2017, 14:14

TỪ KHÓA LIÊN QUAN

w