verilog: 看代码时遇一问题:把两个12位的数扩展成13位相加,为什么在前面补最高位,不应该补0吗?
答案:3 悬赏:50 手机版
解决时间 2021-04-02 16:15
- 提问者网友:骑士
- 2021-04-02 12:55
verilog: 看代码时遇一问题:把两个12位的数扩展成13位相加,为什么在前面补最高位,不应该补0吗?
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-04-02 13:53
默认的reg类型是unsigned。所以需要程序员自己判断这个变量是不是有可能是负数。有可能的话就需要做符号扩展。就是你看见的东西。
如果声明成signed reg的话,就不需要做扩展了,只需要保证被赋值的变量位数够用就行了。追问如果原来的符号位为1,那么数不是变了吗?如1_1011(-11)变成11_1011(-27)追答你写的数都是-5. 取反加一。追问也就是说我们处理的数据都是以补码形式表示的
如果声明成signed reg的话,就不需要做扩展了,只需要保证被赋值的变量位数够用就行了。追问如果原来的符号位为1,那么数不是变了吗?如1_1011(-11)变成11_1011(-27)追答你写的数都是-5. 取反加一。追问也就是说我们处理的数据都是以补码形式表示的
全部回答
- 1楼网友:往事隔山水
- 2021-04-02 15:16
是不是 有符号位的加法,最高位可能代表符号吧?
最好贴出上下文看看。追问如果原来的符号位为1,那么数不是变了吗?如1_1011(-11)变成11_1011(-27)追答关键代码贴出来看看啊,否则怎么帮你分析?
最好贴出上下文看看。追问如果原来的符号位为1,那么数不是变了吗?如1_1011(-11)变成11_1011(-27)追答关键代码贴出来看看啊,否则怎么帮你分析?
- 2楼网友:人類模型
- 2021-04-02 14:14
这样应该是减法吧,变成补码相加的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯