求教modelsim中负数补码运算的问题
问题描述:
求教modelsim中负数补码运算的问题
在MODELSIM中.输入A.参考B.如果EN = A - B.
在一些情况下.EN是负数.计算机没法表示负数.只能用负数的补码.
正常口算::::比如说.EN = -9 .那么比如ANS= EN * 2 = -18 .
计算机计算::::因为计算机表示的EN =11110111(-9的补码).那么ANS = 11110111*2完全就是错误的了.
我输出的是ANS.那不是错误的结果吗?.是不是要在算法中处理?
答
补码用于把两个数的相减转化成补码相加.
计算机是可以表示负数的,最高位是符号位.比如EN=-9那他最高位就是1,具体符号位纪委看数据长度. 进行乘法运算时候就是EN 按照9来乘以二,然后在加上相应位数的1(表示负数)