Cách float được lưu trong ARM (theo chuẩn: IEEE-754)
float có kích thước 32 bits (4bytes)
1. Thành phần
bao gồm 3 thành phần:
sign bit: bit cao nhất (bit 31)
vị trí dấu chấm động: 8 bits tiếp theo (từ bit 30 đến bit 23) [30:23]. và được offset cho 127 (có nghĩa là trừ cho 127)
phần giá trị: từ bit 22 đến bit 0 [23:0].
2. Ví dụ
lấy số: -12.5 -> sẽ được lưu trong memory: 0xC1480000
1100 0001 0100 1000 0000 0000 0000 0000
sign bit: 1
vị trí dấu chấm động: 100 0001 0= 130; 130 - 127 = 3
phần giá trị: 1100 1000 0000 0000 0000 0000: sẽ tự động được thêm bit 1 vào.
áp vị trí dấu chấm động vào:
1100. 1000 0000 0000 0000 0000
1100b = 12d.
có thể tính theo công thức hồi xưa học tin lớp 11: (1 × 23) + (1 × 22) + (0 × 21) + (0 × 2) = 12
. 1000 0000 0000 0000 0000 phần lẽ: (1 × 2-1) + (0 × 2-2) + (0 × 2-3) + ... = 0.5
Cộng 2 cái này lại với nhau ta có: 12 + 0.5 = 12.5
kết hợp sign bit 1 (dấu âm) là -12.5