Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 二进制加法中的下溢和溢出_Binary_Overflow_Undertow - Fatal编程技术网

Binary 二进制加法中的下溢和溢出

Binary 二进制加法中的下溢和溢出,binary,overflow,undertow,Binary,Overflow,Undertow,在下列情况下: 0b10001111+0b10011000 = 0b100100111 是否存在下溢?因为这两项是负的,结果是正的 我们什么时候会有溢油?因为第9位总是1?当两个第8位都为1时 0b1000 1111+0b1001 1000=0b1 0010 0111 将进位包含为n+1位,结果为2s补码无意义。你可以做的是要么坚持原来的尺寸 0b1000 1111+0b1001 1000=0b0010 0111//无效 或将操作数扩展到n+1位,得到n+1位的结果 0b1 1000 111

在下列情况下:

0b10001111+0b10011000 = 0b100100111 
是否存在下溢?因为这两项是负的,结果是正的

我们什么时候会有溢油?因为第9位总是1?当两个第8位都为1时

0b1000 1111+0b1001 1000=0b1 0010 0111

将进位包含为n+1位,结果为2s补码无意义。你可以做的是要么坚持原来的尺寸

0b1000 1111+0b1001 1000=0b0010 0111//无效

或将操作数扩展到n+1位,得到n+1位的结果

0b1 1000 1111+0b1 1001 1000=0b1 0010 0111//有效

原因是2s补码的作用是将负整数加上2^n,使其为正。(至代码a) 0b1000 1111+0b1001 1000=0b1 0010 0111

将进位包含为n+1位会导致2s补码没有意义。您可以做的是保持原始大小

0b1000 1111+0b1001 1000=0b0010 0111//无效

或将操作数扩展到n+1位,得到n+1位的结果

0b1 1000 1111+0b1 1001 1000=0b1 0010 0111//有效


原因是2s补码的作用是将负整数加上2^n,使其为正。(对
进行编码是否为下溢?
是。
什么时候会出现溢出?因为第9位总是1?
8位整数中没有第9位。@tkausl第9位allegedly@tkausl这说明它是溢出的,似乎他们根本不使用术语
下溢
。@tkausl这就是我感到困惑的方式,有人说如果进位相同,因此不在/overflow
下,则为下溢?
是。
什么时候会出现上溢?因为第9位总是1?
在8位整数中没有第9位。@tkausl第9位allegedly@tkausl这表示它是溢出的,似乎他们根本不使用术语
下溢
。@tkausl这就是我感到困惑的方式,有人说如果进位是相同的,那么它就不会处于欠位/溢出状态