Bài tập biểu diễn số nguyên có dấu

Hệ đếm là tập hợp những ký hiệu và qui tắc sử dụng tập ký hiệu đó để màn biểu diễn và xác lập những giá trị những số. Mỗi hệ đếm có một số trong những ký số (digits) hữu hạn. Tổng số ký số của mỗi hệ đếm được gọi là cơ số (base hay radix), ký hiệu là b.

Tóm lược đại ý quan trọng trong bài

  • I.1.2.2. Biểu diễn tài liệu trong máy tính và cty chức năng thông tin
  • I.1.2.3. Biểu diễn số nguyên
  • c. Tính toán số học với số nguyên
  • I.1.2.4. Biểu diễn số thực
  • I.1.2.5. Biểu diễn ký tự
  1. Hệ đếm cơ số b

Hệ đếm cơ số b (b ≥ 2 và nguyên dương) mang tính chất chất chất sau :

  • Có b ký số để thể hiện giá trị số. Ký số nhỏ nhất là 0 và lớn số 1 là b-1.
  • Giá trị vị trí thứ n trong một số trong những của hệ đếm bằng cơ số b lũyũy thừa n: bn
  • Số N(b) trong hệ đếm cơ số (b) được màn biểu diễn bởi:

trong số đó, số N(b) có n+1 ký số màn biểu diễn cho phần nguyên và m ký số lẻ màn biểu diễn cho phần b_phân, và có mức giá trị là:

Trong ngành toán – tin học lúc bấy giờ phổ cập 4 hệ đếm là hệ thập phân, hệ nhị phân, hệ bát phân và hệ thập lục phân.

  1. Hệ đếm thập phân (Decimal system, b=10)

Hệ đếm thập phân hay hệ đếm cơ số 10 là một trong những ý tưởng sáng tạo của người Ả rập cổ, gồm có 10 ký số theo ký hiệu sau:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Qui tắc tính giá trị của hệ đếm này là mỗi cty chức năng ở một hàng bất kỳ có mức giá trị bằng 10 cty chức năng của hàng kế cận bên phải. Ở đây b=10. Bất kỳ số nguyên dương trong hệ thập phân trọn vẹn có thể màn biểu diễn như thể một tổng những số hạng, mỗi số hạng là tích của một số trong những với 10 lũy thừa, trong số đó số mũ lũy thừa được tăng thêm một cty chức năng Tính từ lúc số mũ lũy thừa phía bên phải nó. Số mũ lũy thừa của hàng cty chức năng trong hệ thập phân là 0.

Ví dụ: Số 5246 trọn vẹn có thể được màn biểu diễn như sau:

5246 = 5 x 103 + 2 x 102 + 4 x 101 + 6 x 100

\= 5 x 1000 + 2 x 100 + 4 x 10 + 6 x 1

Thể hiện như trên gọi là ký hiệu mở rộng của số nguyên vì

5246 = 5000 + 200 + 40 + 6

Như vậy, trong số 5246 : ký số 6 trong số nguyên đại diện thay mặt thay mặt cho giá trị 6 cty chức năng (1s), ký số 4 đại diện thay mặt thay mặt cho giá trị 4 chục (10s), ký số 2 đại diện thay mặt thay mặt cho giá trị 2 trăm (100s) và ký số 5 đại diện thay mặt thay mặt cho giá trị 5 ngàn (1000s). Nghĩa là, số lũy thừa của 10 tăng dần 1 cty chức năng từ trái sang phải tương ứng với vị trí ký hiệu số,

100 = 1 101 = 10 102 = 100 103 = 1000 104 = 10000 …

Mỗi ký số ở thứ tự rất khác nhau trong số sẽ đã có giá tốt trị rất khác nhau, ta gọi là giá trị vị trí (place value).

Phần thập phân trong hệ thập phân sau dấu chấm phân cách thập phân (theo qui ước của Mỹ) thể hiện trong ký hiệu mở rộng bởi 10 lũy thừa âm tính từ phải sang trái Tính từ lúc dấu chấm phân cách:

101101−= 1011002−= 10110003−= …

Ví dụ: 254.68 = 2 x 102 + 5 x 101 + 4 x 100 + 6 x 10-1 + 8 x 10-2

  1. Hệ đếm nhị phân (Binary system, b=2)

Với cơ số b=2, toàn bộ chúng ta có hệ đếm nhị phân. Đây là hệ đếm đơn thuần và giản dị nhất với 2 chữ số là 0 và 1. Mỗi chữ số nhị phân gọi là BIT (viết tắt từ chữ BInary digiT). Vì hệ nhị phân chỉ có 2 trị số là 0 và 1, nên lúc muốn diễn tả một số trong những to nhiều hơn, hoặc những ký tự phức tạp hơn thì nên phối hợp nhiều bit với nhau. Ta trọn vẹn có thể quy đổi số trong hệ nhị phân sang số trong hệ thập phân quen thuộc.

Ví dụ: Số 11101.11(2) sẽ tương tự với giá trị thập phân là :

  1. Hệ đếm bát phân (Octal system, b=8)

Nếu dùng 1 tập hợp 3 bit thì trọn vẹn có thể màn biểu diễn 8 trị rất khác nhau : 000, 001, 010, 011, 100, 101, 110, 111. Các trị này tương tự với 8 trị trong hệ thập phân là 0, 1, 2, 3, 4, 5, 7. Tập hợp những chữ số này gọi là hệ bát phân, là hệ đếm với b = 8 = 23. Trong hệ bát phân, trị vị trí là lũy thừa của 8.

235 . 64(8) = 2x82 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157. 8125(10)

  1. Hệ đếm thập lục phân (Hexa-decimal system, b=16)

Hệ đếm thập lục phân là hệ cơ số b=16 = 24, tương tự với tập hợp 4 chữ số nhị phân (4 bit). Khi thể hiện ở dạng hexa-decimal, ta có 16 ký tự gồm 10 chữ số từ 0 đến 9, và 6 chữ in A, B, C, D, E, F để màn biểu diễn những giá trị số tương ứng là 10, 11, 12, 13, 14, 15. Với hệ thập lục phân, trị vị trí là lũy thừa của 16.

Ví dụ:

34F5C(16) = 3×164 + 4×163 + 15×162 + 5×161 + 12×160 = 216294(10)

Ghi chú: Một số ngôn từ lập trình qui định viết số hexa phải có chữ H ở cuối chữ số. Ví dụ: Số 15 viết là FH.

  1. Chuyển đổi một số trong những từ hệ thập phân sang hệ đếm cơ số b Đổi phần nguyên từ hệ thập phân sang hệ b

Tổng quát: Lấy số nguyên thập phân N(10) lần lượt chia cho b cho tới khi thương số bằng 0. Kết quả số quy đổi N(b) là những dư số trong phép chia viết ra theo thứ tự ngược lại.. Ví dụ: Số 12(10) = ?(2). Dùng phép chia cho 2 liên tục, ta có một loạt những số dư như sau:

Đổi phần thập phân từ hệ thập phân sang hệ cơ số b

Tổng quát: Lấy phần thập phân N(10) lần lượt nhân với b cho tới khi phần thập phân của tích số bằng 0. Kết quả số quy đổi N(b) là những số phần nguyên trong phép nhân viết ra theo thứ tự tính toán.

I.1.2.2. Biểu diễn tài liệu trong máy tính và cty chức năng thông tin

  1. Nguyên tắc chung

tin tức và tài liệu mà con người hiểu được tồn tại dưới nhiều dạng rất khác nhau, ví như những số liệu, những ký tự văn bản, âm thanh, hình ảnh,… nhưng trong máy tính mọi thông tin và tài liệu đều được màn biểu diễn bằng số nhị phân (chuỗi bit).

Để đưa tài liệu vào cho máy tính, nên phải mã hoá nó về dạng nhị phân. Với những kiểu tài liệu rất khác nhau nên phải có cách mã hoá rất khác nhau. Cụ thể:

Các tài liệu dạng số (số nguyên hay số thực) sẽ tiến hành quy đổi trực tiếp thành những chuỗi số nhị phân theo những chuẩn xác lập.

Các ký tự được mã hoá theo một bộ mã rõ ràng, tức là mỗi ký tự sẽ tương ứng với một chuỗi số nhị phân.

Các tài liệu phi số khác ví như âm thanh, hình ảnh và nhiều đại lượng vật lý khác muốn đưa vào máy phải số hoá (digitalizing). Có thể hiểu một cách đơn thuần và giản dị khái niệm số hoá như sau: những tài liệu tự nhiên thường là quy trình biến hóa liên tục, vì vậy để lấy vào máy tính, nó nên phải biến hóa sang một dãy hữu hạn những giá trị số (nguyên hay thực) và được màn biểu diễn dưới dạng nhị phân.

Với những tín hiệu như âm thanh, video, hay những tín hiệu vật lý khác, qui trình mã hoá được màn biểu diễn như sau:

Hình I.2.1.1.a. Quá trình số hoá tín hiệu vật lý

Tuy rằng mọi tài liệu trong máy tính đều ở dạng nhị phân, tuy nhiên do thực ra của tài liệu, người ta thường phân tài liệu thành 2 dạng:

  • Dạng cơ bản: gồm dạng số (nguyên hay thực) và dạng ký tự. Số nguyên không dấu được màn biểu diễn theo hình thức nhị phân thường thì, số nguyên có dấu theo mã bù hai, còn số thực theo hình thức dấu phảy động. Để màn biểu diễn một tài liệu cơ bản, người ta sử dụng 1 số ít bit. Các bit này ghép lại với nhau để tạo thành từ: từ 8 bít, từ 16 bít,…
  • Dạng có cấu trúc: Trên cơ sở tài liệu cơ bản, trong máy tính, người ta xây hình thành những tài liệu có cấu trúc phục vụ cho những mục tiêu sử dụng rất khác nhau. Tuỳ Theo phong cách “ghép” toàn bộ chúng ta có mảng, tập hợp,xâu, bản ghi,…
  1. Đơn vị thông tin

Đơn vị nhỏ nhất để màn biểu diễn thông tin gọi là bit. Một bit tương ứng với một sự kiện có một trong 2 trạng thái.

Ví dụ: Một mạch đèn có 2 trạng thái là:

  • Tắt (Off) khi mạch điện qua công tắc nguồn là hở
  • Mở (On) khi mạch điện qua công tắc nguồn là đóng

Số học nhị phân sử dụng hai ký số 0 và 1 để màn biểu diễn những số. Vì kĩ năng sử dụng hai số 0 và một là như nhau nên một thông tư chỉ gồm một chữ số nhị phân trọn vẹn có thể xem như thể cty chức năng chứa thông tin nhỏ nhất.

Bit là chữ viết tắt của BInary digiT. Trong tin học, người ta thường sử dụng những cty chức năng đo thông tin to nhiều hơn như sau:

Tên gọi

Ký hiệu

Giá trị

KiloByte

MegaByte

GigaByte

TeraByte

210 B = 1024 Byte

220 B

230 B

240 B

I.1.2.3. Biểu diễn số nguyên

Số nguyên gồm số nguyên không dấu và số nguyên có dấu. Về nguyên tắc đều dùng 1 chuỗi bit để màn biểu diễn. Đối với số nguyên có dấu, người ta sử dụng bit thứ nhất để màn biểu diễn dấu ‘-‘ và bit này gọi là bit dấu.

  1. Số nguyên không dấu

Trong màn biểu diễn số nguyên không dấu, mọi bit đều được sử dụng để màn biểu diễn giá trị số. Ví dụ 1 dãy 8 bit màn biểu diễn số nguyên không dấu có mức giá trị:

28 = 256 số nguyên dương, cho giá trị từ 0 (0000 0000) đến 255 (1111 1111).

Với n bits ta trọn vẹn có thể màn biểu diễn 1 số ít nguyên có mức giá trị lớn số 1 là 2n-1 và dải giá trị màn biểu diễn được từ 0 đến 2n-1.

Thí dụ: 00000000 = 0

00000010 = 2

00000100 = 4

11111111 = 255

  1. Số nguyên có dấu

Trong màn biểu diễn số nguyên có dấu, bit đầu làm bít dấu: 0 là số dương và 1 cho số âm. Số nguyên có dấu thể hiện trong máy tính ở dạng nhị phân là số dùng 1 bit làm bít dấu, người ta qui ước dùng bit ở hàng thứ nhất bên trái làm bit dấu (S): 0 là số dương và 1 cho số âm. Cách phổ cập màn biểu diễn số âm có dấu là dùng mã bù hai:

Số bù hai được xem như sau:

  • Biểu diễn số nguyên không dấu
  • Nghịch hòn đảo toàn bộ những bit (số bù một)
  • Cộng thêm một. (số bù hai)

Thí dụ màn biểu diễn trên 8 bits:

37 = 00100101

Bù một (nghịch hòn đảo) = 11011010

Bù hai (thêm vào đó một) 1

11011011  số -37

Bit dấu

Chú ý: Thử màn biểu diễn mã bù hai của -37 để thu được số +35

C. Tính toán số học với số nguyên

Cộng/ trừ số nguyên Cộng/ trừ số nguyên không dấu

Khi cộng hai số nguyên không dấu n bits ta thu được một số trong những nguyên không dấu cũng n bits. Vì vậy,

  • Nếu tổng của hai số đó nhỏ hơn hoặc bằng 2n-1 thì kết quả nhận được là đúng.
  • Nếu tổng của hai số đó to nhiều hơn 2n-1 thì khi này sẽ tràn số và kết quả sẽ là sai.

Thí dụ với trường hợp 8 bits, tổng nhỏ hơn 255 thì ta sẽ đã có được kết quả đúng:

 Để tránh hiện tượng kỳ lạ tràn số này ta phải sử dụng nhiều bit hơn để màn biểu diễn.

Cộng/trừ số nguyên có dấu

Số nguyên có dấu được màn biểu diễn theo mã bù hai, vậy qui tắc chung như sau:

  • Cộng hai số nguyên có dấu n-bit sẽ bỏ qua giá trị nhớ thoát khỏi bit có ý nghĩa tốt nhất, tổng nhận được sẽ đã có giá tốt trị đúng và cũng rất được màn biểu diễn theo mã bù hai, nếu kết quả nhận được nằm trong dải -2n-1 đến + 2n-1 -1.
  • Để trừ hai số nguyên có dấu X và Y (X – Y) , cần lấy bù hai của Y tức –Y, tiếp sau đó cộng X với –Y theo nguyên tắc trên.

Như vậy, khi tiến hành phép tính trên sẽ thừa ra 1 bit bên trái cùng, bit này sẽ không còn được lưu trong kết quả và sẽ tiến hành bỏ qua.

Nhân/ chia số nguyên

So với phép cộng và phép trừ, phép nhân và phép chia phức tạp hơn nhiều. Dưới đây, chỉ trình làng phép nhân/phép chia với số nhị phân. Ví dụ sau mô tả phép nhân hai số nhị phân: