2 x (-2) = -4, còn máy tính nghĩ sao?

4531

Trong sinh hoạt hàng ngày việc gặp và tính toán là điều không thể tránh khỏi. Dù làm gì hay không làm gì thì ít nhất một lần trong ngày chúng ta sẽ tính toán với con số. Chẳng hạn, mình đang ngồi buồn buồn và bất giác nhẩm nhẩm xem 1 + 1 bằng mấy 😂 . Và cũng có lúc ta phải tính phép tính mà nhẩm sẽ chậm hơn là dùng máy tính. Vậy là lôi ngay cái máy tính ra và tính toán cho tiện. Nhưng có khi nào ta nghĩ rằng sao mà cái máy tính nó lại tính toán ra được kết quả cho mình?

1. Lược sử máy tính

Thời kỳ máy tính cổ đại

Ngày xửa ngày xưa, xưa ơi là xưa, xưa đến lỗi mà máy tính điện tử chưa xuất hiện thì đã có máy tính để giúp việc tính toán của con người dễ dàng hơn. Mỗi một nơi sẽ có loại máy tính cổ khác nhau và dưới đây là một số loại đã được ghi chép lại.

Bảng đếm

Bảng đếm hay Counting board là tiền thân của bảng tính, nó được biết đến như là thiết bị tính toán đầu tiên mà con người ghi nhận được. Bảng tính có thể được làm từ nhiều loại vật liệu khác nhau như: đá, gỗ, các loại hạt, …

Bảng đếm cũ nhất mà con người biết đến đó là Salamis Tablet

Máy tính để bàn (Bảng tính)

Hay còn được gọi là bàn tính (abacus), loại máy tính này được sử dụng từ rất lâu rồi và được sử dụng ở nhiểu nước trên thế giới như: Trung Quốc, Nhật Bản, Hàn Quốc, … Chủ yếu là các nước ở Châu Á.

Và còn nhiều loại máy tính cổ khác mà các nhà khoa học, khảo cổ học vẫn chưa tìm ra.

Thời kỳ máy tính cận đại

Thời kỳ này, máy tính sử dụng các loại bóng đèn chân không để thực hiện các chức năng tính toán của nó. Tiêu biểu là chiếc máy tính ENIAC mà ai cũng từng nghe tên.

Chiếc máy tính điện tử đầu tiên là cỗ máy ENIAC khổng lồ của John W. Mauchly và J. Presper Eckert tại Đại học Pennsylvania. ENIAC (Máy tính và tích hợp số điện tử) đã sử dụng một từ gồm 10 chữ số thập phân thay vì số nhị phân như máy tính tự động trước đây.

Máy tính sử dụng 170.000 watt điện, nặng 28 tấn, có 17.840 đèn điện tử chân không, lấp đầy một tòa nhà lớn và có giá 487.000 USD. Phải mất vài người mới có thể điều khiển được chiếc máy tính này. Ngoài 17.480 ống chân không, ENIAC có 7.200 điốt tinh thể, 1.500 rơle, 70.000 điện trở, 10.000 tụ điện và khoảng 5 triệu khớp nối bằng tay. Máy tính thông thường bạn sử dụng ngày nay dĩ nhiên nhanh hơn hàng chục nghìn lần.

Thời kỳ máy tính hiện đại

Đây là thời kỳ huy hoàng của máy tính, linh kiện sử dụng là các thiết bị bán dẫn. Điều này giúp làm giảm kích thước và tăng tốc độ của máy tính lên rất nhiều. Hiện tại hầu như tất cả các ngành hiện nay đề có ứng dụng kết quả của máy tính vào để tăng giá trị.

2. Cách tính toán của máy tính

Đây là phần trọng tâm của bài, như với tiêu đề ở trên 2 x (-2) = -4 thì khi nhìn vào phép tính này thì nó quá đơn giản! Bất kỳ ai đã học qua lớp 6 thì đều nhẩm nhanh được kết quả.

Nhưng với máy tính thì nó không hề đơn giản một chút nào. Tại sao? Vì máy tính xử dụng bộ vi xử lý trung tâm (hay CPU) để thực hiện tính toán. Mà CPU lại gồm 2 phần chính là: ALU, CU. ALU là thành phần chịu trách nhiệm tính toán và xử lý số học và ALU được tạo lên từ các cổng logic (logic gate).

Với lẽ đó, máy tính không thể nhẩm tính cũng như nhận biết được đâu là số âm đâu là số dương. Mà cần phải có quy ước, thuật toán để giúp cho máy tính thực hiện được việc đó.

Nhận biết số âm

Để máy tính nhận biết một số là số âm hay số dương thì những nhà thông thái đã sử dụng số bù 1, số bù 2, số quá N.

Số bù 1

Số bù 1 là một số trong hệ nhị phân của một số khác. Số bù 1 được sử dụng để biểu diễn số âm trong máy tính.

Phương pháp biểu diễn số bù 1 như sau:

  • Bit dấu: bit dấu 0 nếu là số dương, và là 1 nếu là số âm
  • Chuyển tử số âm sang dương hay ngược lại ta sử dụng phép đảo bit (NOT)

Một byte 8 bit áp dụng phương pháp bù 1 thì có thể biểu diễn các số từ -127_{10} đến 127_{10} ( do mất 1 bit làm bit dấu). Nhưng có vấn đề xảy ra là có 2 giá trị nhị phân của số 0, đó là: 00000000 (+0), 11111111 (-0)

Khi thực hiện phép cộng giữa hai số biểu diễn theo phương pháp bù 1, ta cũng thực hiện theo quy tắc cộng nhị phân thông thường, tuy nhiên, sau khi đã thực hiện xong, nếu còn phát sinh bit nhớ thì phải tiếp tục cộng bit nhớ này vào kết quả vừa thu được.

Ví dụ: dạng bù 1 của 00101011 (43) là 11010100(−43)

Số bù 2

Số bù 2 cũng được sử dụng để biểu diễn số âm trong máy tính, được tạo ra do sự cố của số bù 1. Để có được số bù 2 ta lấy số bù 1 cộng thêm 1.

Với mẫu 8 bit, phương pháp bù 2 có thể biểu diễn tốt các số nguyên có giá trị từ −128_{10} đến +127_{10} (so với từ $−127_{10} đến $+127_{10} theo phương pháp dấu lượng và bù 1) do được lợi từ việc tiết kiệm được một cách biểu diễn số 0 (không phân biệt giữa −0 và +0).

Để tính giá trị từ số bù 2 ta sử dụng công thức:

w = -a_{N-1}.2^{N-1} + sum_{i=0}^{N-2}a_{i}.2^{i}

Ví dụ: Số -5_{10} được biểu diễn sang hệ nhị phân (xét mẫu 8 bit) sử dụng phương pháp bù 1 là 11111010. Để biểu diễn theo phương pháp bù 2, ta cộng thêm 1 vào số nhị phân ở bù 1, tức cộng 1 cho 11111010: 11111010 + 1 = 11111011. Vậy 11111011 là biểu diễn bằng bù 2 của −510 trong máy tính.

Số quá N

Phương pháp biểu diễn số quá N – hay còn gọi là biểu diễn dịch số (biased representation) – sử dụng một số nguyên N cho trước làm giá trị dịch. Theo phương pháp này, một số ở hệ 10 sẽ được biểu diễn bằng dạng nhị phân của một số dương nào đó sao cho giá trị của số dương này lớn hơn giá trị biểu diễn N đơn vị.

Ví dụ: giả sử cần biểu diễn giá trị 2_{10} theo số quá 5 (mẫu 8 bit):

  • Bước 1: ta có:
    • Giá trị cần biểu diễn: 2.
    • N = 5.
  • Bước 2: xác định số dương lớn hơn 2_{10} năm đơn vị, đó là số 7.

Vậy 2_{10} sẽ được biểu diễn bằng dạng nhị phân của 7: 00000111.

Bảng kết quả:

Số thập phân cần biểu diễn Giá trị thập phân của số quá 5 Giá trị biểu diễn ở hệ nhị phân
-5 0 00000000
-4 1 00000001
-3 2 00000010
-2 3 00000011
-1 4 00000011
0 5 00000101
1 6 00000110
2 7 00000111
3 8 00001000
4 9 00001001
5 10 00001010
6 11 00001011
7 12 00001100
8 13 00001101
9 14 00001110
10 15 00001111

Hôm nay tạm thời đến đây, bài sau sẽ đi tiếp về phần cộng, trừ, nhân, chia.

TopDev via Viblo

Bạn có bị giảm lương do dịch Covid-19 không?

View Results

Loading ... Loading ...