求教modelsim中负数补码运算的问题
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:数学作业 时间:2024/08/18 01:31:22
求教modelsim中负数补码运算的问题
在MODELSIM中.输入A.参考B.如果EN = A - B.
在一些情况下.EN是负数.计算机没法表示负数.只能用负数的补码.
正常口算::::比如说.EN = -9 .那么比如ANS= EN * 2 = -18 .
计算机计算::::因为计算机表示的EN =11110111(-9的补码).那么ANS = 11110111*2完全就是错误的了.
我输出的是ANS.那不是错误的结果吗?.是不是要在算法中处理?
在MODELSIM中.输入A.参考B.如果EN = A - B.
在一些情况下.EN是负数.计算机没法表示负数.只能用负数的补码.
正常口算::::比如说.EN = -9 .那么比如ANS= EN * 2 = -18 .
计算机计算::::因为计算机表示的EN =11110111(-9的补码).那么ANS = 11110111*2完全就是错误的了.
我输出的是ANS.那不是错误的结果吗?.是不是要在算法中处理?
![求教modelsim中负数补码运算的问题](/uploads/image/z/16082762-50-2.jpg?t=%E6%B1%82%E6%95%99modelsim%E4%B8%AD%E8%B4%9F%E6%95%B0%E8%A1%A5%E7%A0%81%E8%BF%90%E7%AE%97%E7%9A%84%E9%97%AE%E9%A2%98)
补码用于把两个数的相减转化成补码相加.
计算机是可以表示负数的,最高位是符号位.比如EN=-9 那他最高位就是1,具体符号位纪委看数据长度. 进行乘法运算时候就是EN 按照9来乘以二,然后在加上相应位数的1(表示负数)
计算机是可以表示负数的,最高位是符号位.比如EN=-9 那他最高位就是1,具体符号位纪委看数据长度. 进行乘法运算时候就是EN 按照9来乘以二,然后在加上相应位数的1(表示负数)