Chöông 1 HEÄ THOÁNG SOÁ ÑEÁM – SOÁ NHÒ PHAÂN I Caùc heä thoáng soá ñeám 1 Caùc khaùi nieäm Cô soá (r radix) Troïng soá (weight) Giaù trò (value) laø íog lö ôuèg åyù tö u chö õ íog (åyù íog dãgãt) íö û[.]
Chương 1: HỆ THỐNG SỐ ĐẾM – SỐ NHỊ PHÂN I Các hệ thống số đếm: Các khái niệm: - Cơ số (r - radix): làíoglư ơg åý tư uchư õíog(åý íog- dãgãt) íư û dug đểbãểu dãễè trg hệthogèg íogđegm - Trọng số (weight): đa lư ơg bãểu dãễè cho vịtrí c íog trg chuỗã íog Trọng số = Cơ số Vị trí - Giá trị (value): tíèh bằèg tổèg theo trog íog Giá trị = (Ký số x Trọng số) NguyenTrongLuat a Số thập phân (Decimal): Cơ số r = 10 102 4x102 400 101 0x101 100 7x100 10-1 6x10-1 0.6 10-2 2x10-2 0.02 10-3 5x10-3 0.005 400 + + + 0.6 + 0.02 + 0.005 = 407.625 b Số nhị phân (Binary): Cơ số r = 1 1 22 1x22 21 0x21 20 1x20 2-1 0x2-1 2-2 1x2-2 0.25 2-3 1x2-3 0.125 + + + + 0.25 + 0.125 = 5.375 NguyenTrongLuat c Số thập lục phân (Hexadecimal): Hexadecimal Decimal 7 Binary Cơ số r = 16 Hexadecimal Decimal 0000 0001 0010 0011 0100 0101 0110 0111 A B C D E F A 162 5x162 1280 161 10x161 160 160 0x160 16-1 4x16-1 0.25 Binary 10 11 12 13 14 15 D 1000 1001 1010 1011 1100 1101 1110 1111 16-2 16-3 13x16-2 1x16-3 0.0508 0.0002 1280 + 160 + + 0.25 + 0.0508 + 0.0002 = 1440.301 NguyenTrongLuat Chuyển đổi số: a Từ thập phân sang nhị phân 625 :2 = :2 = :2 = :2= dö dö dö dö (LSB) 0 1 0 1 B 0.625 x = 1.25 phần nguyên (MSB) 0.25 x = 0.5 phần nguyên 0.5 x = 1.0 phần nguyên NguyenTrongLuat b Từ thập phân sang thập lục phân: 1480.4296875 1480 : 16 = 92 dư (LSD) 92 : 16 = dö 12 : 16 = dö 5 C E H 0.4296875 x 16 = 6.875 phần nguyên (MSD) 0.875 x 16 = 14.0 phần nguyên 14 NguyenTrongLuat c Từ nhị phân sang thập lục phân: 0011101101011101.0110101 B B D A H d Từ thập lục phân sang nhị phân: C E H 01011001001.11101000 B NguyenTrongLuat II Số nhị phân (Binary): 1.Các tính chất số nhị phân - Số nhị phân n bit có 2n giá trị từ đến 2n - - Số nhị phân có giá trị 2n-1: … … … (n bit 1) giá trị 2n: … … (n bit 0) - Soá nhị phân có giá trị lẻ số có LSB = 1; ngược lại giá trị chẵn số có LSB = - Các bội số bit: B (Byte) NguyenTrongLuat = bit KB = 210 B MB = 210 KB = GB = 210 MB = 1024 B 220 B Caùc phép toán số học số nhị phân: a Phép coäng: 0 1 + + + + 1 = = = = 1 nhớ 1 1 1 1 1 1 0 b Phép trừ: 0 1 NguyenTrongLuat - 1 = = = = mượn 1 -1 -1 -1 1 1 1 0 1 1 1 0 c Phép nhân: 1 0 0 0 0 1 1 0 1 d Pheùp chia: 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 NguyenTrongLuat Mã nhị phân: Từ mã: tổ hợp nhị phân sử dụng loại mã nhị phân a Mã nhị phân cho số thập phân (BCD – Binary Coded Decimal) Số BCD BCD thập phân (8 1) (2 1) 0000 0000 0001 0001 0010 0010 0011 0011 0100 0100 0101 1011 0110 1100 0111 1101 1000 1110 1001 1111 NguyenTrongLuat BCD quaù 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Maõ 10 0000000001 0000000010 0000000100 0000001000 0000010000 0000100000 0001000000 0010000000 0100000000 1000000000 10 b Mã Gray: mã nhị phân mà giá trị liên tiếp có tổ hợp bit biểu diễn khác bit Giá trị Binary Gray 000 001 010 011 100 000 001 011 010 110 Đổi từ Binary sang Gray Đổi từ Gray sang Binary 1 1 1 0 1 0 Gray: 1 1 NguyenTrongLuat Gray: 0 11 Giá trị c Mã LED đoạn: a f g e b c d a b c d e f g 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 d Maõ n: mã nhị phân n bit có từ mã có bit (hoặc 0) n-1 bit lại (hoặc 1) Maõ 4: NguyenTrongLuat 0 0 0 0 0 0 hoaëc 1 1 1 1 1 1 12 d Mã ký tự ASCII: (Cột) b6 b5 b4 (Hàng) b3b2b1b Hex 000 001 010 011 100 101 110 111 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US SP ! ” # $ % & ’ ( ) * + , / : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 NguyenTrongLuat A B C D E F 13 III Số nhị phân có dấu : Biểu diễn số có dấu: a Số có dấu theo biên độ (Signed_Magnitude): - Bit MSB bit dấu: số dương số âm, bit lại biểu diễn giá trị độ lớn + 13 : 01101 - 13 : 11101 - Phạm vi biểu diễn: - (2n-1 – 1) ÷ + (2n-1 – 1) NguyenTrongLuat 14 b Số bù_1 (1’s Complement): - Số bù_1 số nhị phân N có chiều dài n bit Bù_1 (N) = 2n – – N Buø_1 (1 0 1) = 24 - - 0 = 1111 - 1001 = 0110 - Có thể lấy Bù_1 số nhị phân cách lấy đảo bit (0 thành thành 0) - Biểu diễn số có dấu bù_1: * Số có giá trị dương: bit dấu = 0, bit lại biểu diễn độ lớn * Số có giá trị âm: lấy bù_1 số dương có độ lớn - Phạm vi biểu diễn NguyenTrongLuat - (2n-1 – 1) ÷ + (2n-1 – 1) 15 c Số bù_2 (2’s Complement): - Số bù_2 số nhị phân N có chiều dài n bit có n bit Buø_2 (N) = 2n – N = Buø_1 (N) + Buø_2 (1 0 1) = 24 - 0 = 10000 - 1001 = hoaëc NguyenTrongLuat 0111 Buø_2 (1 0 1) = Buø_1 (1 0 1) + = 0110 +1 = 0111 16 - Biểu diễn số có dấu bù_2: * Số có giá trị dương: bit dấu = 0, bit lại biểu diễn độ lớn * Số có giá trị âm: lấy bù_2 số dương có độ lớn - Phạm vi biểu diễn số nhị phân có dấu n bit - (2n-1 ) NguyenTrongLuat ÷ + (2n-1 - 1) Giá trị dương Giá trị âm 000 = 001 = + 010 = + 011 = + 100 = - 101 = - 110 = - 111 = - 17 - Để tìm giá trị số âm: ta lấy bù_2 nó; nhận số dương có biên độ Số âm Bù_2 0 có giá trị : -… 15 … … (1 0 1) = 0 1 1 : + 15 - Mở rộng chiều dài bit số có dấu: số dương thêm bit số âm thêm bit vào trước -3 : 101 = 11101 - Lấy bù_2 hai lần số số - Giá trị -1 biểu diễn … 11 (n bit 1) - Giá trị -2n biểu diễn 0 0 (n bit 0) - 32 = - 25 : 0 0 NguyenTrongLuat 18 Các phép toán cộng trừ số có dấu: - Thực giống số không dấu - Thực toán hạng có chiều dài bit, kết có số bit - Kết nằm phạm vi biểu diễn số có dấu (nếu kết sai cần mở rộng chiều dài bit) -6 : + +3 : -3 : 1010 0011 1101 +4 : 0100 + +5 : 0101 - : 0 (Kq sai) NguyenTrongLuat -2 : + -5 : -7 : 1110 1011 1001 00100 00101 01001 :+9 (Kq đúng) 19 -6 : -2 : -4 : 1010 1110 1100 -7 : 1001 +5 : 0101 + : 0 (Kq sai) NguyenTrongLuat +2 : -5 : +7 : 0010 1011 0111 11001 00101 1 0 : - 12 (Kq ñuùng) 20