Thật vô tình vào kỳ học vừa rồi bản thân có học tập qua môn SWD391 cùng được giao vấn đề mô phỏng về kiểu cách laptop cộng trừ nhân chia. Mới đầu tò mò thì thấy khá cạnh tranh do tư liệu bên trên mạng thì tràn lan không ví dụ mang đến lắm, sau ngay sát 1 tuần khám phá và được thầy giáo cung cấp cuối cùng bản thân cũng khá được thông não^^. Tìm đọc xong bản thân thấy tương đối là độc đáo mà lại thấy tư liệu bên trên mạng toàn giờ đồng hồ anh cùng với ko được rõ ràng lắm bắt buộc mình viết bài xích này để tổng thích hợp cùng chia sẻ lại về phần này.

Bạn đang xem:

Hầu như rất nhiều bạn rất nhiều biết cộng trừ số thập phần vì nó đã được học trường đoản cú hồi lớp 5 rồi nhưng mà máy vi tính nó công thêm toán thù bằng phương pháp khác nhé. Tại phần này mình đang viết về kiểu cách laptop xử trí phnghiền tính cùng với trừ số thập phân.

Mọi fan rất có thể clone chương trình mô bỏng thuật tân oán về chạy để làm rõ hơn nhé. Link repo: https://github.com/gamesbaidoithuong.com/Algorithm-Simulation

Cấu trúc số thập phân vào sản phẩm tính

Ở loạt bài xích này bản thân đang trình diễn về những phép tính máy vi tính trên định dạng Single-Precision (32-bits). Lúc tính toán, laptop sẽ biến đổi các số thập phân sang dạng số binary rồi bắt đầu triển khai tính tân oán, hầu như tín đồ từ tìm hiểu về kiểu cách đổi khác nhé hoặc rất có thể sử dụng biện pháp này nhằm chuyển đổi.


*

*

Biên quý giá bé dại duy nhất cùng lớn nhất của Single-Precision

Cấu trúc có 3 phần: sign, exponentfraction (hay có cách gọi khác là mantissa). Sign là phần vết (+ hoặc -), exponent là phần lũy quá, mantissa là phần thập phân (quy trình cùng trừ hầu hết thao tác với phần này).

Trong phần mantissa ngoài dãy 23 bits nlỗi format, ta có thêm 2 mục ẩn E, A1. Định dạng phần mantissa luôn luôn tất cả mục ẩn A1 có giá trị bởi 1. Còn mục ẩn E chính là phần bit quá (Lúc cộng 2 mantissa với nhau), E đứng trước A1 và sẽ bị triệt tiêu rồi đẩy lên phần exponent giả dụ E = 1.lấy một ví dụ ngơi nghỉ hình trên phần mantissa có mức giá trị là 0.15625 (biến đổi binary quý phái số thập phân), thêm mục ẩn A1 thì quý giá đúng nên là một trong những.15625


*

E và Amột là 2 mục ẩn đặc biệt quan trọng trong phần mantissa khi tính toán thù.

Về cơ phiên bản thì khi đưa sang trọng binary thì số thập phân sẽ sở hữu được kết cấu nlỗi tê, sau thời điểm chuyển quý phái binary máy vi tính đã triển khai tính toán rồi lại đưa trở lại về số thập phân. Chuyển ngược lại về số thập phân hơi là dễ dàng, phần lớn fan tự tìm hiểu trên trang nhất google nhé :3

Quy trình cùng trừ số thập phân

Thuật tân oán cộng trừ số thập phân vào laptop chia làm 4 bước, mình đã giải thích từng bước một một tất nhiên sơ đồ vật ngắn gọn xúc tích mỗi bước:Cách 1. Kiểm tra số 0Cách 2. Cân bởi phần exponentCách 3. Cộng bit phần mantissaBước 4. Chuẩn hóa kết quả

Cách 1. Kiểm tra số 0
*

Bước 1. Kiểm tra số 0

Bước thứ nhất laptop vẫn bình chọn 2 số gồm bởi 0 hay là không trước lúc triển khai cùng trừ. BR là số trừ (hay là số cộng), AC là số được cùng (hoặc số bị trừ).Bước này rất dễ hình dung, ta chú ý ở ngôi trường thích hợp giả dụ AC = 0 cùng phxay tính là trừ thì đang bắt buộc thay đổi dấu công dụng (As Bước 2. Cân bởi exponent

*

Cách 2. Cân bằng exponent

1. A, B là ký kết hiệu của phần mantissa với a, b là ký hiệu phần exponent.2. Tính phần exponent trong Single-Precision (32-bits):K = 127 (2^(n-1) — 1) với n là số bit exponent (8 bits)

Giống nlỗi cùng với Việc phải để trực tiếp mặt hàng vết phẩy Lúc cộng trừ 2 số thập phân với nhau vào tân oán lớp 5, thì ngơi nghỉ bước này ta cần cân đối phần exponent bằng phương pháp cộng thêm vào phần exponent kết hợp dịch bit phần mantissa.

Xem thêm: The Comp R &Amp; D Là Gì - The Comprehensive R Archive Network

Ta đang so sánh phần exponent của 2 số, số bao gồm exponent nhỏ rộng vẫn cần cân bằng exponent cùng với số còn lại. Mỗi lần tăng exponent của số bé dại rộng 1 đơn vị ta đồng thời dịch phần mantissa của số nhỏ hơn lịch sự yêu cầu 1 bit (bao gồm cả bit ẩn A1). Quá trình này tái diễn cho lúc nào 2 phần exponent của 2 số đều nhau.

Bước 3. Cộng bit phần mantissa
Bước 3. Cộng bit phần mantissa

As là vệt của số được cộng (hoặc bị trừ), Bs là dấu của số cộng (hoặc trừ).EA là tác dụng cộng của 2 phần mantissa.

Mình sẽ phân tích và lý giải vì sao cùng với phép tân oán cùng cùng trừ lại sở hữu 2 trường hòa hợp như kia. Đầu tiên các người xem qua bảng mà mình tổng hợp mặt dưới:


Tại cột Add Magnitude bản chất 2 số A, B quý hiếm sẽ tiến hành cùng với nhau, chỉ cần dấu của phép tính hoàn toàn có thể bị chuyển đổi nhưng mà thôi. Tương trường đoản cú thì cột Subtract Magnitude thực chất 2 số A,B quý giá sẽ bị trừ đi với vết của phnghiền tính có thể bị biến đổi. Tương tự vậy, 2 trường hòa hợp (trong xúc tích và ngắn gọn bước 3) đó là 2 trường vừa lòng mình đã nói sống bảng bên trên (Add Magnitude Subtract Magnitude).

Sau Lúc sử dụng phxay xor với vết của 2 số (As, Bs) ta ban đầu thực hiện cùng bit phần mantissa. EA two’s complement). Bù 2 đã đảo ngược bit B (0 thành 1 với 1 thành 0) tiếp đến cộng thêm 1.

Cách 4. Chuẩn hóa kết quả
Cách 4. Chuẩn hóa kết quả

Đối cùng với chuẩn hóa mang đến ngôi trường hợp EA two’s complement) phần mantissa đôi khi nghịch đảo vệt của tác dụng. Ngược lại ví như E = 1 ta bước đầu đánh giá phần mantissa A, giả dụ A = 0 ta đã trả về hiệu quả (đây là ngôi trường hợp 2 số trừ nhau bằng 0).

Sau trường hợp E = 0 hoặc A # 0 ta sẽ soát sổ A1 (bit ẩn cơ mà mình đã nói trong phần cấu trúc). Trường phù hợp này ta đã dịch trái phần mantissa mặt khác bớt 1 đơn vị chức năng phần exponent của công dụng, quy trình này lặp lại cho tới Khi A1 = 1 thì trả về tác dụng của phnghiền tính.


Đây là toàn cục quy trình tính toán thù cộng trừ số thập phân vào laptop, hơi là tinh vi :3 Mình viết không được rõ ràng hầu hết người hoàn toàn có thể clone chương trình mô bỏng thuật toán thù này trên github của chính bản thân mình nhằm làm rõ rộng nhé. Phần tiếp theo sau bản thân đang viết về phnghiền nhân, hy vọng số đông fan góp ý cùng ủng hộ ❤


Chương trình mô rộp thuật toán mà tôi đã làm cho vào môn học SWD391

More from gamesbaidoithuong.com


Follow
An engineer who is young, talented, creative, passionate in working, và always puts effort into lớn self-improving knowledge và skills in the IT field.