避坑笔记!
例如:如果需要计算一个数据除64。
公式
a
y = ————————————
256
计算过程如下:
正数:
a = 353 = (161)H = (0_0001_0110_0001)B
计算器计算结果
353 / 256 = 1.390625
硬件计算结果
(0_0001)B = 1
负数:
a = -353 = (1_E9F)H = (1_1110_1001_1111)B
计算器计算结果
-353 / 256 = -1.37890625
硬件计算结果
(1_1110)B 补码
=(1_0001)B + (1)B 原码
=(1_0010)B = -2
当使用MATALB搭建好model时,如果涉及到带符号为的除法的时候,就需要重点注意了!因为带符号位的数进行除法可能会涉及到取整的问题,MATLAB取整有多个函数。
函数 | 功能 |
round | 四舍五入 |
fix | 保留整数部分 |
floor | 向下取整 |
ceil | 向上取整 |
sign | 提取符号 |
rem | 取余数 |
mod | 取模数 |
floor:向下取整
ceil: 向上取整
例子
eg:四舍五入
a = -353
round(a/256)
答案:ans = -1
a = 353
round(a/256)
答案:ans = 1
eg:保留整数部分
a = -353
fix(a/256)
答案:ans = -1
a = 353
fix(a/256)
答案:ans = 1
eg:向下取整
a = -353
floor(a/256)
答案:ans = -2
a = 353
floor(a/256)
答案:ans = 1
eg:向上取整
a = -353
ceil(a/256)
答案:ans = -1
a = 353
ceil(a/256)
答案:ans = 2
eg:提取符号
a = -353
sign(a/256)
答案:ans = -1
a = 353
sign(a/256)
答案:ans = 1
eg:取余数
a = -353
rem(a,256)
答案:ans = -1
a = 353
rem(a/256)
答案:ans = 97
eg:取模数
a = -353
mod(a,256)
答案:ans = -1
a = 353
mod(a/256)
答案:ans = 97
硬件通过移位实现的除法,往往都是向下取整,因此MATLAB使用floor取整,同步RTL的硬件除法。
标签:RTL,eg,避坑,353,答案,ans,取整,MATALB,256 From: https://www.cnblogs.com/powerforme/p/16718075.html