Altifigence Academy

3 / 20 · Khái niệm

Chính sách đầu ra dấu phẩy cố định

Tách thang đầu vào, làm tròn số âm, bão hòa và quay vòng.

Bit lưu số nguyên; thang cho ý nghĩa

Biểu diễn x bằng số nguyên X và F bit phần lẻ, để x=X/2^F. Ta dùng cùng F cho A và B. Tích và bộ tích lũy có 2F bit phần lẻ. Chuyển tổng thô cuối S về thang đầu vào cần chia cho 2^F. Chuyển một lần sau toàn bộ phép rút gọn; làm tròn trước từng số hạng có thể bỏ các đóng góp mà khi cộng lại sẽ đáng kể.

Với F=4, [1.5,−0.5] được lưu là [24,−8], còn [0.25,2.0] là [4,32]. Tích vô hướng thô là 24×4−8×32=−160. Giá trị thực là −160/256=−0.625, và số nguyên đầu ra tại F=4 là −10.

Kiểm tra rõ làm tròn số âm

Với S=−17 và F=4, số nguyên đầu ra chính xác là −1.0625. Dịch phải số học cho −2; cắt về 0 cho −1. Làm tròn gần nhất, trường hợp đúng giữa chọn số chẵn, cũng cho −1. Do đó dịch số học không thể thay thế mọi cách hiểu của việc “bỏ phần lẻ”. Tại các giá trị đúng giữa −24/16=−1.5 và −40/16=−2.5, chọn số chẵn đều cho −2.

Chuyển đổi mặc định của chúng ta làm tròn toàn bộ tổng về gần nhất, đúng giữa chọn số chẵn, rồi bão hòa theo độ rộng đầu ra. Với trị tuyệt đối, tính thương q và dư r. Tăng q khi r lớn hơn nửa số chia, hoặc khi bằng nửa và q lẻ. Khôi phục dấu ban đầu sau đó. Trong RTL, lấy trị tuyệt đối của số âm nhỏ nhất cần biến tạm rộng hơn; tham chiếu Node dùng BigInt.

Định nghĩa tràn tại đầu ra

Đầu ra tám bit có dấu bao phủ −128..127. Giá trị đã làm tròn 130 bão hòa thành 127 hoặc quay vòng thành −126. Giá trị −130 bão hòa thành −128 hoặc quay vòng thành 126. Cả hai chính sách đều có thể có chủ ý, nhưng phải được gọi tên và kiểm tra.

So sánh riêng bộ tích lũy thô và đầu ra đã chuyển. Tổng thô sai hướng đến số học hoặc lịch; tổng đúng nhưng đầu ra sai hướng đến thang, làm tròn hoặc bão hòa. Giữ các trường hợp biên tính tay để tham chiếu và RTL không cùng che giấu một lỗi chuyển đổi.

Tự thử

Tìm kết quả đúng giữa chọn số chẵn với F=4, S=−56, và đầu ra tám bit bão hòa với F=4, S=−2080.

Đọc giải thích

−56/16=−3.5 làm tròn thành số nguyên chẵn −4. −2080/16=−130, bão hòa thành −128 sau làm tròn.

Lựa chọn áp dụng cho trình duyệt này. Có thể đổi ở chân trang bất cứ lúc nào.