Bài giảng Biểu diễn dữ liệu và số học máy tính

SỐ HỌC NHỊ PHÂN

Nếu bit của số nhân là 0 => Tích riêng phần bằng 0

 Nếu bit của số nhân là 1 => Tích riêng phần là giá trị số bị nhân

 Tích riêng phần tiếp theo được dịch trái 1 bit so với tích riêng phần phía trước đó.

 Tích bằng tổng các tích riêng phần.

 Nhân hai số nguyên n bit. Tích có độ dài luôn chuẩn bị 2n bit. Vì vậy phép nhân không có khái niệm tràn

pdf62 trang | Chia sẻ: maiphuongdc | Lượt xem: 13158 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Bài giảng Biểu diễn dữ liệu và số học máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GV: Đinh Đồng Lưỡng Chương 3 Biểu diễn dữ liệu và số học máy tính 3.1 Các hệ đếm cơ bản 3.2 Mã hoá và lưu trữ dữ liệu trong máy tính 3.3 Biểu diễn số nguyên 3.4 Số học nhị phân 3.5 Biểu diễn số dấu chấm động 3.6 Biểu diễn ký tự GV: Đinh Đồng Lưỡng 3.1 Các hệ đếm cơ bản  Hệ thập phân (Decimal System): con người sử dụng  Hệ nhị phân (Binary System): máy tính sử dụng  Hệ thập lục phân (Hexadecimal System): dùng biểu diễn rút ngắn số học nhị phân  Cách chuyển đổi giữa các hệ đếm. GV: Đinh Đồng Lưỡng Hệ thập phân (decimal) Bộ ký tự cơ sở gồm 10 số: 0…9 Dạng tổng quát: an-1an-2an-3…a1a0,a-1 a-2…a-m 45 123 =123,45 ∑− −= = 1 10* n mi i iaA Ví dụ: 123,45 Phần nguyên : 123 : 10 = 12 dư 3 12 : 10 = 1 dư 2 1 : 10 = 0 dư 1 Phần phân : 0,45*10 = 4,5 0,5 *10 = 5 Trong đó (ai = 0…9). GV: Đinh Đồng Lưỡng Hệ nhị phân(Binary) Bộ ký tự cơ sở gồm 2 số: 0,1 Dạng tổng quát: an-1an-2an-3…a1a0,a-1 a-2…a-m Ví dụ: 11011,0112 = 24+23+21+20+2-2+2-3 =27,375 Thập lục phân (hexadecimal) Bộ ký tự cơ sở: 0…9,A…F Dạng tổng quát: an-1an-2an-3…a1a0,a-1 a-2…a-m Ví dụ: 89ABH = 1000 1001 1010 1011B. )1,0(2* 1 == ∑− −= i n mi i i aaA )..,9..0(16* 1 FAaaA i n mi i i == ∑ − −= Hệ nhị phân (Binary) Hệ thập lục phân (Hexadecimal) GV: Đinh Đồng Lưỡng 3.2 Mã hoá và lưu trữ trong máy tính Nguyên tắc chung về mã hoá dữ liệu Mọi dữ liệu được đưa vào máy tính được mã hoá thành số nhị phân. Các loại dữ liệu: • Dữ liệu nhân tạo: do con người quy ước • Dữ liệu tự nhiên: tồn tại khách quan với con người Mã hoá dữ liệu nhân tạo • Dữ liệu số nguyên: mã hoá theo một số chuẩn đã qui ước • Dữ liệu số thực: mã hoá bằng số dấu chấm động • Dữ liệu phi số (ký tự): mã hoá theo các bộ mã ký tự hiện hành như : ASCII, Unicode,… GV: Đinh Đồng Lưỡng Mô hình mã hoá và tái tạo tín hiệu vật lý Bộ cảm biến tín hiệu (Sensor) Bộ tái tạo tín hiệu Bộ chuyển đổi số=> tương tự (ADC Bộ chuyển đổi tương tự => số (ADC) Máy tính T/h vlý T/h vlý Các dữ liệu vật lý thông dụng  Âm thanh  Hình ảnh GV: Đinh Đồng Lưỡng Thứ tự lưu trữ các byte dữ liệu MT Bộ nhớ chính tổ chức lưu trữ dữ liệu theo đơn vị byte Độ dài từ dữ liệu có thể chiếm từ 1 đến 4 byte. Vì vậy cần phải biết thứ tự chúng lưu trữ trong bộ nhớ chính đối các dữ liệu nhiều byte. Có hai cách lưu trữ được đưa ra Little Endian (đầu nhỏ): Byte có ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí có địa chỉ nhỏ hơn. Big Endian (đầu to): Byte có ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí có địa chỉ lớn hơn. GV: Đinh Đồng Lưỡng Ví dụ: lưu trữ một từ 32bit 0001 1010 0010 1011 0011 1100 0100 1101B 1 A 2 B 3 C 4 D H Biểu diễn trong ngăn nhớ theo 2 cách 300 4D 300 1A 301 3C 301 2B 302 2B 302 3C 303 1A 303 4D Little Endian Big Endian Thứ tự lưu trữ các byte dữ liệu MT GV: Đinh Đồng Lưỡng  Lưu trữ của các bộ vi xử lý điển hình  Loại máy Intel: 80x86, Petium -> little endian  Motorola 680x0 và các bộ xử lý RISC -> big endian  Power PC & Itanium: tích hợp cả hai cách trên Thứ tự lưu trữ các byte dữ liệu MT GV: Đinh Đồng Lưỡng 3.3. Biểu diễn số nguyên Máy tính biểu diễn số nguyên chia thành 2 loại  Biểu diễn số nguyên không dấu (unsign integer)  Biểu diễn số nguyên có dấu (sign integer) Số nguyên không dấu: Giả sử dùng n bit để biểu diễn số nguyên không dấu-> dải mà n bit biểu diễn được từ 0 -> 2n-1. Giá trị của số nguyên đó được tính: • Dải miền trị của số nguyên không dấu được biểu bằng hình tròn • Giá trị nhỏ nhất bằng 0 • Giá trị lớn nhất bằng 2n-1 ∑− = 1 0 2* n i i ia GV: Đinh Đồng Lưỡng • Ví dụ: n=8 0…28-1 (255) n=16 0… 216-1 (65535). n=32 0…232-1 Ví dụ: Số nguyên không dấu GV: Đinh Đồng Lưỡng Số nguyên có dấu • Số bù một và số bù hai ĐN: Cho một số nhị phân N được biểu diễn bởi n bit. Ta có  Số bù một của N bằng (2n-1)-N  Số bù hai của N bằng 2n-N Ví dụ: Cho số N = 0001 00012 được biểu diễn bởi n=8bit. Xác định số bù 1 và bù 2 của N. Ap dụng công thức 1111 1111 (2n-1) 0001 0001 N số bù một của N 1110 1110 GV: Đinh Đồng Lưỡng Số nguyên có dấu  Nhận xét: số bù một của một số N được xác định bằng cách đảo các bit trong N Ap dụng công thức 1 0000 0000 (2n) 0001 0001 N số bù hai của N 1110 1111  Nhận xét: số bù hai của một số N được xác định bằng cách lấy số bù một của N cộng thêm 1 Số bù 2 của N =(số bù 1 của N)+1 GV: Đinh Đồng Lưỡng Số nguyên có dấu Giả sử dùng n bit để biểu diễn số nguyên có dấu-> dải mà n bit biểu diễn được từ (- 2n-1 ..-1,0 .. 2n-1-1). Giá trị của số nguyên đó được tính theo 2 phần riêng biệt:  Phần giá trị dương (0 -> 2n-1-1).  Phần giá trị âm (- 2n-1…-1).  Dải miền trị của số nguyên có dấu được biểu bằng hình tròn Giá trị nhỏ nhất bằng - 2n-1 Giá trị lớn nhất bằng +2n-1-1 GV: Đinh Đồng Lưỡng Số nguyên có dấu Trong đó: Bít có trọng số cao nhất (hay bit ngoài cùng bên trái của dãy nhị được máy tính sử dụng để biểu diễn dấu của giá trị) nếu: = 0 : thì số nhị phân cần tính giá trị là số dương. Dạng tổng quát là: 0an-2an-3…a0 = 1 : thì số nhị phân cần tính giá trị là số âm. Dạng tổng quát là: 1an-2an-3…a0 Giá trị tính ∑− = − +− 2 0 1 2*2 n i i i n a GV: Đinh Đồng Lưỡng Ví dụ 1 Ví dụ 1: Cho số nguyên có dấu biểu diễn n=8bit sau: A=B5H và B=6AH Hãy xác định giá trị của hai số nguyên có dấu A và B dưới dạng hệ số người sử dụng Bài giải • Biểu diễn số nguyên A dưới dạng nhị phân A=B5H = 1011 01012 =>A= -128 + 53 = - 75 • Biểu diễn số nguyên B dưới dạng nhị phân B=6AH = 0110 10102 => B = 64+32+8+2 = 106 GV: Đinh Đồng Lưỡng Ví dụ 2 Ví dụ 2: Biểu diễn số nguyên có dấu sau đây A=+97 và B=-101 theo hai dạng kiểu n=8bit và n=16bit trong máy tính. Lời giải  Biểu diễn số A dạng số nguyên có dấu trong máy tính A = 0110 00012 (n=8bit)  Biểu diễn số B dạng số nguyên có dấu trong máy tính Biểu diễn số +101 = 0110 01012 Lấy bù 2 1001 10112 => B = - 101 = 1001 10112 GV: Đinh Đồng Lưỡng Biểu diễn số A dạng số nguyên có dấu trong máy tính A = 0000 0000 0110 00012 (n=16bit) Biểu diễn số B dạng số nguyên có dấu trong máy tính Biểu diễn số +101 =0000 0000 0110 01012 Lấy bù 2 1111 1111 1001 10112 => B =-101 = 1111 1111 1001 10112 Ví dụ 2 GV: Đinh Đồng Lưỡng Biểu diễn số nguyên theo mã BCD (Binary Coded Decimal Code) Dùng nhóm 4 bit để mã hoá mười số nhị phân 0 -> 0000 6 -> 0110 1 -> 0001 7 -> 0111 2 -> 0010 8 -> 1000 3 -> 0011 9 -> 1001 4 -> 0100 5 -> 0101 Có 6 tổ hợp không được sử dụng đó là: 1010, 1011, 1100, 1101, 1110, 1111. GV: Đinh Đồng Lưỡng Biểu diễn số 38 = 0011 1000BCD 61 = 0110 0001BCD Thực hiện phép cộng: 38 0011 1000BCD 61 0110 0001BCD 99 1001 1001BCD 275 0010 0111 0101BCD 816 1000 0001 0110BCD 1091 1010 1000 1011BCD => sai Biểu diễn số nguyên theo mã BCD GV: Đinh Đồng Lưỡng Biểu diễn số nguyên theo mã BCD  Chỉnh lại cho đúng: Cộng thêm 6(0110) vào các cột có giá trị lớn hơn 9 có nhớ. Phép toán trên ta cộng thêm vào cột 1 và cột 3 tính lại ta được 001BCD Ta đuợc 1091 275 0010 0111 0101BCD 816 1000 0001 0110BCD 1091 1010 1000 1011BCD => sai 0110 0000 0110 1 0000 1001 0001 => đúng GV: Đinh Đồng Lưỡng 3.4 Số học nhị phân  Phép cộng số nguyên không dấu Khi cộng hai số nguyên không dấu n bit Nếu không có nhớ ra khỏi bit cao nhất thì kết quả nhận được luôn đúng. Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận được là sai. Hay nói khác hơn phép cộng bị tràn(Cout =1) Tràn cờ nhớ (Carry Out) xảy ra khi kết quả phép toán nhận được > 2n-1 Bộ cộng n bit Y(n-bit) X(n-bit) cin cout S(n-bit) GV: Đinh Đồng Lưỡng Cộng số nguyên có dấu. Khi cộng hai số nguyên có dấu n-bit -> Kết quả nhận được ta không quan tâm đến cờ mang Cout. Mà ta chỉ nhận kết quả tính được trong n-bit. Vì vậy cộng hai số khác dấu thì cho kết quả luôn luôn đúng. Nếu cộng hai số cùng dấu nếu kết quả trả về cùng dấu toán hạng thi kết quả đúng. Ngược lại kết quả khác dấu toán hạng thì xảy ra hiện tượng tràn (Overflow) kết quả sai. 3.4 Số học nhị phân GV: Đinh Đồng Lưỡng  Phép trừ Phép trừ số nguyên chính là phép cộng với số đảo dấu. Ví như X-Y = X+(-Y)  Tìm số đảo chính là ta tìm bù hai của số đó.  Nguyên tắc phép trừ: Lấy bù hai của Y ra thành –Y rồi cộng với X Bộ cộng n-bit Bù hai S=X-Y Y (n-bit) X(n-bit) -Y 3.4 Số học nhị phân GV: Đinh Đồng Lưỡng • Nhân số nguyên không dấu 1011 1001 1011 0000 0000 1011 1100011 (99) -> Tích Số bị nhân Số nhân Tích riêng phần 3.4 Số học nhị phân GV: Đinh Đồng Lưỡng Nếu bit của số nhân là 0 => Tích riêng phần bằng 0 Nếu bit của số nhân là 1 => Tích riêng phần là giá trị số bị nhân Tích riêng phần tiếp theo được dịch trái 1 bit so với tích riêng phần phía trước đó. Tích bằng tổng các tích riêng phần. Nhân hai số nguyên n bit. Tích có độ dài luôn chuẩn bị 2n bit. Vì vậy phép nhân không có khái niệm tràn. 3.4 Số học nhị phân GV: Đinh Đồng Lưỡng Số nhân Mn-1 Mn-2 * * * M1 M0 An-1 An-2 * * * A1 A0 Qn-1 Qn-2 * * * Q1 Q0 Bộ cộng n bit Bộ điều khiển cộng và dịch C ĐK cộng ĐK dịch phải Số bị nhân  Bộ nhân số nguyên không dấu 3.4 Số học nhị phân GV: Đinh Đồng Lưỡng START END C,A<=0; Count <= n; M <=số bị nhân; Q <=số nhân Qo=1 ? Shift right C,A,Q Count =Count-1 C,A <= A+M Count=0? N N Y Y Lưu đồ thuật toán cho phép nhân không dấu 3.4 Số học nhị phân GV: Đinh Đồng Lưỡng Ví dụ: nhân số nguyên không dấu ví dụ 1:  Số bị nhân: 1011  Số nhân : 1001  Tích : 1100011 Thao tác theo sơ đồ thuật toán trên: M =1011 GV: Đinh Đồng Lưỡng C A Q thao tác 0 1011 1001 C,A=A+M 0 0101 1100 Shift right 0 0010 1110 Shift right 0 0001 0111 Shift right 0 1100 0111 C,A=A+M 0 0110 0011 Shift right 0110 0011 -> tích cần tìm nằm trong A và Q 0 0000 1001 Qo=1 0 0101 1100 Qo=0 0 0010 1110 Qo=0 0 0001 0111 Qo=1 Ví dụ: nhân số nguyên không dấu GV: Đinh Đồng Lưỡng Ví dụ 2:  Số bị nhân: 1101  Số nhân : 1010  Tích : 1000 0010 Thao tác theo sơ đồ thuật toán trên: M =1011 Ví dụ: nhân số nguyên không dấu GV: Đinh Đồng Lưỡng C A Q thao tác 0 0000 0101 Shift right 0 1101 0101 C,A=A+M 0 0110 1010 Shift right 0 0110 1010 Qo=0 0 0011 0101 Shift right 0 0011 0101 Qo=1 1 0000 0101 C,A=A+M 0 1000 0010 Shift right 1000 0010 -> tích cần tìm nằm trong A và Q 0 0000 0101 Qo=1 0 0000 1010 Qo=0 Ví dụ: nhân số nguyên không dấu GV: Đinh Đồng Lưỡng Nhân số nguyên có dấu Ta có thể sử dụng một trong hai thuật toán:  Sử dụng thuật toán nhân không dấu cho số có dấu.  Sử dụng thuật toán giải Booth Thuật toán nhân không dấu:  Chuyển số bị nhân và số nhân thành số dương  Nhân hai số dương sử dụng thuật giải trên  Hiệu chỉnh dấu của tích - Nếu 2 thừa số có cùng dấu thì kết quả tính được là kết quả cần tìm - Nếu 2 thừa số khác dấu thì kết quả là giá trị bù hai của kết kết quả vừa tính. Thuật toán Booth GV: Đinh Đồng Lưỡng Thuật toán Booth: START END C <-0; Q-1<- 0; Count <- n; M <-số bị nhân; Q <-số nhân QoQ-1 Shift Q,Q-1 Count =Count-1 A <- A+M Count=0? N 10 01 Y A <- A-M GV: Đinh Đồng Lưỡng Ví dụ: nhân số nguyên có dấu Ví dụ 1:  Số bị nhân: 0111 (7)  Số nhân : 0011 (3)  Tích : 00010101 (21) Thao tác theo sơ đồ thuật toán trên: M =0111 GV: Đinh Đồng Lưỡng A Q Q-1 thao tác 1001 0011 0 A=A-M 1100 1001 1 Shift right 1110 0100 1 Shift right 1110 0100 1 QoQ-1=01 0101 0100 1 A=A+M 0010 1010 0 Shift right 0010 1010 0 QoQ-1=00 0001 0101 0 Shift right 0001 0101 -> tích cần tìm nằm trong A và Q 0000 0011 0 QoQ-1=10 1100 1001 1 QoQ-1=11 Ví dụ: nhân số nguyên có dấu GV: Đinh Đồng Lưỡng Ví dụ 2:  Số bị nhân: 1001(-7)  Số nhân : 0011 (3)  Tích : 1110 1010 (-21) Thao tác theo sơ đồ thuật toán trên: M =1001 Ví dụ: nhân số nguyên có dấu GV: Đinh Đồng Lưỡng A Q Q-1 thao tác 0111 0011 0 A=A-M 0011 1001 1 QoQ-1=11 0001 1100 1 QoQ-1=01 1010 1100 1 A=A+M 1101 0110 0 QoQ-1=00 1110 1011 -> tích cần tìm nằm trong A và Q 0000 0011 0 khởi tạo Q-1=0 0000 0011 0 QoQ-1=10 0011 1001 1 Shift right 0001 1100 1 Shift right 1101 0110 0 Shift right 1110 1011 0 Shift right Ví dụ: nhân số nguyên có dấu GV: Đinh Đồng Lưỡng Ví dụ 3:  Số bị nhân: 1001(-7)  Số nhân : 1101 (-3)  Tích : 00010101 (21) Thao tác theo sơ đồ thuật toán trên: M =1001 Ví dụ: nhân số nguyên có dấu GV: Đinh Đồng Lưỡng A Q Q-1 thao tác 0111 1101 0 A=A-M 0011 1110 1 QoQ-1=01 1100 1110 1 A=A+M 1110 0111 0 QoQ-1=10 0101 0111 1 A=A-M 0010 1011 1 QoQ-1=00 0001 0101 0000 1101 0 khởi tạo Q-1=0 0000 1101 0 QoQ-1=10 0011 1110 1 Shift right 1110 0111 0 Shift right 0010 1011 1 Shift right 0001 0101 1 Shift right Ví dụ: nhân số nguyên có dấu GV: Đinh Đồng Lưỡng Lưu ý Chú ý: Shift A,Q,Q-1 là phép dịch trải bình thường. Tuy nhiên bit An-1 được dịch sang bit An-2, nhưng vẫn còn ở vị trị đó sau khi đã dịch. GV: Đinh Đồng Lưỡng Chia số nguyên không dấu  Phép chia bao gồm các thành phần: số bị chia, số chia, thương số và có thể có cả phần dư nữa. Số bị chia Phần dư riêng phần Phần dư Thương số Số chia 1101 1011 10010011 1011 01110 1011 001111 1011 100 GV: Đinh Đồng Lưỡng Lưu đồ chia số nguyên không dấu START END A<- 0; Count <- n; Q <-số bị chia; M <-số chia A<0? Count =Count-1 Q0 <- 0 A <- A+M Count=0? N N Y Y Q0 <- 1 Dịch trái A,Q A <- A-M GV: Đinh Đồng Lưỡng Chia số nguyên có dấu Chuyển đổi số bị chia và số chia về dạng số dương Sử dụng thuật giải chia số nguyên không dấu. Kết quả thương trong Q và phần dư trong A Hiệu chỉnh dấu kết quả: Số bị chia Số chia Thương Số dư + + Giữ nguyên kết quả Giữ nguyên + - Đảo dấu kết quả Giữ nguyên - + Đảo dấu kết quả Đảo dấu - - Giữ nguyên kết quả Đảo dấu GV: Đinh Đồng Lưỡng Biểu diễn số dấu chấm động Cho hai giá trị: Khối lượng mặt trời: 199000000000000000000000000000000000g Khối lượng điện tử: 0.00000000000000000000000000000910956g Để lưu trữ con số này thì máy tính cần đến số bit rất lớn. Như vậy, trong trường hợp này thì loại số có dấu chấm tĩnh sẽ rất bất tiện. Vì vậy tất cả máy tính lưu trữ những số trên dưới dạng dấu chấm động (floating point) 1.990 x 1033 và 0.910956x 10-27 hay theo số khoa học là : 1.999E+33 và 0.910956E-27. GV: Đinh Đồng Lưỡng Dạng tổng quát M.RE Trong đó: M (Matissa) phần định trị R (Radix) cơ số E(Exponent) số mũ X=(-1)s 1.M 2E-B Trong đó: s: là bit dấu (s=0 phần định trị là dương; s=1 phần định trị là âm) M : là phần định trị. E: là số mũ được dịch chuyển đi B đơn vị. R đã được biết (R=2) máy tính lưu số dấu chấm động bao gồm hai thành phần chính Biểu diễn số dấu chấm động GV: Đinh Đồng Lưỡng Chuẩn IEEE 754-1985 phân định 3 dạng số dấu chấm động cơ bản (IEEE: Institute of Electrical and Electronics Engineers ) Số có độ chính xác đơn dài 32 bit (single) Số có độ chính xác kép dài 64 bit (double) Số có độ chính xác mở rộng dài 128bit (quadruple) Biểu diễn số dấu chấm động GV: Đinh Đồng Lưỡng Loại Single Double Quadruple Bề rộng của trường (bit) S E M Tổng cộng E cực đại E cực tiểu Độ dịch 1 8 23 32 255 0 127 1 11 52 64 2047 0 1023 1 15 111 128 32767 0 16383 Biểu diễn số dấu chấm động GV: Đinh Đồng Lưỡng S E M Biểu diễn số dấu chấm động chuẩn IEEE 32bit ± • e± S=1 phần định trị là âm S=0 phần định trị là dương E: giá trị E nằm trong 8 bit, là số mũ được dịch chuyển đi 127 M: phần định trị, giá trị nằm trong 23 bit Ta có số –2345,125 trong hệ thập phân. Hãy biểu diễn chúng dưới dạng chuẩn IEEE 32bit trong máy tính GV: Đinh Đồng Lưỡng B1: Chuyển đổi số trên ra hệ hai -2345,125d = -1001 0010 1001.001b (dãy số nhị phân được biểu diễn bình thường) B2: Chuẩn hoá theo IEEE 32bit -1.001 0010 1001 001 x 211 B3: Xác định các thông số biểu diễn s,M,E S: phần định trị là số âm, nên s là 1 E : phần mũ được xác định e = E-127 => E = 11+127=138=10001010 M: phần định trị được xác định là 001 0010 1001 0010 0000 0000 (số 32 bit) Biểu diễn số dấu chấm động GV: Đinh Đồng Lưỡng  Để thực một phép cộng hoặc trừ hai số dấu chấm động phải tiến hành theo các bước sau: Tăng số mũ của số có số mũ nhỏ hơn cho bằng số có số mũ lớn hơn. Cộng (hoặc trừ) các phần định trị. Nếu cần thiết chuẩn hoá kết quả trả lại. Biểu diễn số dấu chấm động X1 -> M1 và E1 để biểu diễn X1 =M1*RE1 X2 -> M2 và E2 để biểu diễn X2 =M2*RE2  X1*X2 = (M1*M2)*RE1+E2  X1/ X2 = (M1 / M2)*RE1-E2  X1±X1=(M1*R(E1-E2) ±M2)*RE2 (với giả thiết E1>E2) GV: Đinh Đồng Lưỡng •Một số quy ước Nếu e =255 và M0 -> không phải là số Nếu e =255 và M=0 -> Giá trị âm hoặc dương vô cùng Nếu e =0 và M=0 -> giá trị bằng 0 Dải biểu diễn: 2-127 đến 2+127 hay tương đương 10-38 đến 10+38 Overflow Underflow Overflow -2+127 2+127 2-127 -2-127 Biểu diễn số dấu chấm động GV: Đinh Đồng Lưỡng 3.6 Biểu diễn ký tự. Có hai bộ mã thường sử dụng trên máy tính:  Bộ mã ASSCII  Bộ mã Unicode Bộ mã ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute) thiết kế Bộ mã 8 bit -> mã hoá 28 ký tự có mã 00H ->FFH . Trong đó GV: Đinh Đồng Lưỡng 128 ký tự chuẩn cố định có mã (00H -> 7FH) 33 ký tự điều khiển không thể hiện thị nên màn hình. Bao gồm các ký tự điều khiển định dạng văn bản, điều khiển truyền số liệu và điều khiển phân cách thông tin.  Còn lại các ký tự còn lại hiển thị được là bao gồm: 26 ký tự hoa 41h -> 5Ah 26 ký tự thường 61h ->7Ah 10 ký tự số 30h ->39h các dấu số học và ký tự đặc biệt. 3.6 Biểu diễn ký tự. GV: Đinh Đồng Lưỡng 128 ký tự còn lại là ký tự mở rộng có thể thay đổi tuỳ ý nhà chế tạo máy tính hay người phát triển phần mền sử dụng vào những việc riêng. Có mã 80H -> FFH Bộ mã hợp nhất Unicode:  Do các hãng máy tính hàng đầu thế giới kết hợp thiết kế. Bộ mã 16 bit có thể xây dựng bộ mã toàn cầu 216 ký tự với 128 ký tự đầu có mã trùng mã trong bảng mã ASCII. Có hỗ trợ các ký tự Tiếng Việt 3.6 Biểu diễn ký tự. GV: Đinh Đồng Lưỡng Phần trao đổi và giải đáp GV: Đinh Đồng Lưỡng Ôn tập chương 3 Các hệ đếm, ý nghĩa của chúng trong máy tính. Mã hóa dữ liệu trong máy tính. Mã hóa số nguyên(mã hóa số nguyên có và không dấu). Mã hóa số thực (số dấu chấm động) Các thuật toán tính toán trên số học nhị phân Mã hóa ký tự (ASCII, Unicode) Lưu trữ dữ liệu trong máy tính Mô phỏng hoạt động tính toán số học của ALU GV: Đinh Đồng Lưỡng Đặt câu hỏi Câu 1: Kết quả hiển thi lên màn hình là bao nhiêu? Khi thực hiện đoạn lệnh sau: Var a: shortint; Begin a:=-1; writeln(‘Gia tri a:=’,a); writeln(‘Gia tri ngan nho:=’, mem[seg(a):ofs(a)]); End. Kết quả: -1 và 255 GV: Đinh Đồng Lưỡng Đặt câu hỏi Câu 2: Kết quả hiển thi lên màn hình là bao nhiêu? Khi thực hiện đoạn lệnh sau: Var a: shortint; Begin a:=-128; writeln(‘Gia tri a:=’,a); writeln(‘Gia tri ngan nho:=’, mem[seg(a):ofs(a)]); End. Kết quả: -128 và 128 GV: Đinh Đồng Lưỡng Đặt câu hỏi Câu 3: Kết quả hiển thi lên màn hình là bao nhiêu? Khi thực hiện đoạn lệnh sau: Var a: shortint; Begin a:=$6A; writeln(‘Gia tri a:=’,a); writeln(‘Gia tri ngan nho:=’, mem[seg(a):ofs(a)]); End. Kết quả: 106 và 106 GV: Đinh Đồng Lưỡng Đặt câu hỏi Câu 4: Kết quả hiển thi lên màn hình là bao nhiêu? Khi thực hiện đoạn lệnh sau: Var b : integer absolute 3715:100; a : shortint absolute 3715:100; Begin b:=$00B5; writeln(‘Gia tri a:=’,a); writeln(‘Gia tri ngan nho:=’, mem[seg(a):ofs(a)]); End. Kết quả: -75 và 181 GV: Đinh Đồng Lưỡng Đặt câu hỏi Câu 5: Kết quả hiển thi lên màn hình là bao nhiêu? Khi thực hiện đoạn lệnh sau: Var b : integer absolute 3715:100; a: shortint absolute 3715:100; Begin b:=-75; writeln(‘Gia tri a:=’,a); writeln(‘Gia tri ngan nho:=’, mem[seg(a):ofs(a)]); writeln(‘Gia tri ngan nho:=’, mem[seg(a):ofs(a)+1]); writeln(‘Gia tri ngan nho:=’, memw[seg(a):ofs(a)]); End. Kết quả: -75; 181; 255 và 65461

Các file đính kèm theo tài liệu này:

  • pdfchuong3.PDF
Tài liệu liên quan