Tin học 10 · SGK

Bài 4. Hệ nhị phân và dữ liệu số nguyên

BÀI 4

HỆ NHỊ PHÂN VÀ DỮ LIỆU SỐ NGUYÊN

SAU BÀI NÀY EM SẼ:

Trong hệ thập phân, mỗi số có thể được phân tích thành tổng các luỹ thừa của 10 với hệ số của mỗi số hạng chính là các chữ số tương ứng của số đó. Ví dụ số 513 có thể viết thành: 5 × 10^2 + 1 × 10^1 + 3 × 10^0.

Ta cũng có thể phân tích một số thành tổng các luỹ thừa của 2, chẳng hạn 13 có thể viết thành: 1 × 2^3 + 1 × 2^2 + 0 × 2^1 + 1 × 2^0 với các hệ số chỉ là 0 hay 1.

Khi đó, có thể thể hiện 13 bởi 1101 được không? Em hãy cho biết việc thể hiện giá trị của một số bằng dãy bit có lợi gì.

1. HỆ NHỊ PHÂN VÀ BIỂU DIỄN SỐ NGUYÊN

Hoạt động 1. Biểu diễn một số dưới dạng tổng các luỹ thừa của 2

Em hãy viết số 19 thành một tổng các luỹ thừa của 2.

Gợi ý: Hãy lập danh sách các luỹ thừa của 2 như 16, 8, 4, 2, 1 và tách dần khỏi 19 cho đến hết.

a) Hệ nhị phân

Số 19 có thể được biểu diễn bằng tổng 2^4 + 2^1 + 2^0 hoặc viết dưới dạng đầy đủ các luỹ thừa: 1 × 2^4 + 0 × 2^3 + 0 × 2^2 + 1 × 2^1 + 1 × 2^0.

Tương tự như hệ thập phân, 2 có thể được dùng làm cơ số cho một hệ đếm gọi là hệ đếm cơ số 2 hay hệ nhị phân với các đặc điểm sau:

Mỗi số đều có thể được biểu diễn trong hệ nhị phân; số 19 sẽ có biểu diễn là 10011. Khi cần phân biệt số được biểu diễn trong hệ đếm nào, người ta viết cơ số làm chỉ số dưới như 1910 hay 100112.

b) Đổi biểu diễn số nguyên dương từ hệ thập phân sang hệ nhị phân

Giả sử cần đổi số tự nhiên N trong hệ thập phân sang số nhị phân có dạng dkdk-1...d1d0 có giá trị sao cho N = dk × 2^k + dk-1 × 2^(k-1) + ... + d1 × 2 + d0.

Để đổi, người ta chia liên tiếp N cho 2 để tìm số dư như minh hoạ việc đổi số 19 sang số nhị phân ở Hình 4.1.

Hình 4.1. Đổi một số từ hệ thập phân sang hệ nhị phân
Hình 4.1. Đổi một số từ hệ thập phân sang hệ nhị phân

Viết các số dư theo chiều từ dưới lên, ta được số nhị phân cần tìm:

Việc đổi số nhị phân có dạng dkdk-1...d1d0 sang số thập phân thực chất chỉ là việc tính tổng dk × 2^k + dk-1 × 2^(k-1) + ... + d1 × 2 + d0. Ví dụ:

c) Biểu diễn số nguyên trong máy tính

Biểu diễn số nguyên không dấu chính là thể hiện của số trong hệ đếm cơ số 2. Khi được đưa vào bộ nhớ, tuỳ theo số nhỏ hay lớn mà có thể phải dùng một hay nhiều byte. Ví dụ số 19 trong hệ đếm nhị phân có biểu diễn là 10011 chỉ cần một byte với ba bit 0 bổ sung thêm bên trái cho đủ 8 bit; nhưng số 62010 = 10011011002 sẽ phải sử dụng 2 byte và cần bổ sung thêm 6 bit 0 vào phía trái cho đủ 16 bit.

Có hai phương pháp để biểu diễn số trong máy tính là dấu phẩy tĩnh và dấu phẩy động, trong đó phương pháp dấu phẩy động thường được dùng khi tính toán với các số quá lớn, quá nhỏ hoặc không nguyên (có phần thập phân). Dưới đây chúng ta chỉ đề cập tới cách biểu diễn số nguyên.

Đối với số nguyên có dấu, có một số cách mã hoá như mã thuận (còn gọi là mã dấu lượng), mã bù 1 (còn gọi là mã đảo) và mã bù 2. Cả ba cách mã hoá này đều dành ra một bit tận cùng bên trái để mã hoá dấu, dấu dương được mã hoá bởi bit 0, dấu âm được mã hoá bởi bit 1. Số dương trong cả ba cách mã hoá này đều giống nhau; sau bit dấu (bit 0) là biểu diễn nhị phân của số. Đối với số âm thì biểu diễn của ba cách mã hoá này khác nhau. Ví dụ số 1910 trong cả ba cách mã hoá đều có mã là 00010011, khi đó số -1910 sẽ có mã thuận là 10010011, mã bù 1 là 11101100 và mã bù 2 là 11101101.

2. CÁC PHÉP TÍNH SỐ HỌC TRONG HỆ NHỊ PHÂN

Các phép tính trong hệ nhị phân sẽ được thực hiện như thế nào? Trong phần này, chúng ta sẽ làm quen với các phép toán cộng và nhân.

Hoạt động 2. Phép tính trong hệ nhị phân

Hãy chuyển các toán hạng của hai phép tính sau ra hệ nhị phân để chuẩn bị kiểm tra kết quả thực hiện các phép toán trong hệ nhị phân. (Ví dụ 3 + 4 = 7 sẽ được chuyển dạng thành 11 + 100 = 111).

a) Bảng cộng và nhân trong hệ nhị phân

Bảng 4.1 là bảng cộng và nhân trong hệ nhị phân tương tự hệ thập phân. Lưu ý là 1 + 1 = 10.

b) Cộng hai số nhị phân

Phép cộng được thực hiện tương tự như trong hệ thập phân, cũng phải thực hiện từ phải sang trái.

X + y
10

Cộng hai bit 1 và 1 ở hàng nào đó, kết quả là 10, chúng ta ghi 0 ở hàng tương ứng dưới và nhớ 1 sang bên trái. Có thể xảy ra trường hợp cộng hai bit mà phải nhớ 1 từ hàng trước sang thì kết quả sẽ là 11, khi đó chúng ta ghi 1 ở hàng tương ứng dưới và nhớ 1 sang hàng tiếp theo bên trái.

Hình 4.2. Thực hiện phép cộng
Hình 4.2. Thực hiện phép cộng

Hình 4.2 minh hoạ phép cộng hai số nhị phân 11011 và 11010.

c) Nhân hai số nhị phân

Phép nhân trong hệ nhị phân cũng được thực hiện tương tự như trong hệ thập phân.

Ta sẽ nhân thừa số thứ nhất lần lượt với từng chữ số của thừa số thứ hai, theo thứ tự từ phải sang trái và đặt kết quả căn phải theo đúng vị trí chữ số của thừa số thứ hai, rồi cộng tất cả lại (Hình 4.3).

110 1 0000 110 1 110 1 0000 110 1

Hãy thực hiện các phép tính sau trong hệ nhị phân: a) 101101 + 11001. b) 100111 × 1011.

LUYỆN TẬP

Thực hiện tính toán trên máy tính luôn theo quy trình sau:

Hình 4.4. Quy trình thực hiện phép tính trên máy tính
Hình 4.4. Quy trình thực hiện phép tính trên máy tính

VẬN DỤNG