移位与乘除法
左移n位等于原来的二进制数乘以2的n次方。
比如00011010十进制是26,左移两位后是01101000转成十进制是104恰好是26的4倍。
ps:这种倍数关系只适用于左移后被舍弃的高位不含1的情况,否则会溢出。
解决方式很简单,保证足够的位宽就行。
算术右移n位就是有符号位的除法,等于除2的n次方。
逻辑右移n位就是有符号位的除法,等于除2的n次方。
ps:这种倍数关系只适用于右移后被舍弃的低位不含1的情况,否则每舍一次1则代表余数被舍去,保留整数部分。
(针对这个还没想到好办法)从书中看到,这种误差是无解的。
用*乘法符号
//无符号乘法
wire [7:0] ubyte_a