Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/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 - Fatal编程技术网

Binary 二进制和二进制位

Binary 二进制和二进制位,binary,Binary,我遇到了一个问题: 假设每个X代表一位,0或1。考虑8位无符号二进制数a= 1xxx xxxx和b= 0xxx xxxx。以下哪项是正确的(您可以勾选多个答案): A>A B A>127 C分不清哪个A或B更大 D BB 需要解释(对此不理解)。谢谢 答案的关键是单词unsigned。这意味着MSB(最左边的位)未用于指示结果符号。处理器使用twos恭维对数字执行加法、减法和比较等数学运算,这意味着要知道二进制字的数值是什么,我们必须知道它是有符号的(可以包含负值)还是无符号的(仅限正数) 因此

我遇到了一个问题:

假设每个X代表一位,0或1。考虑8位无符号二进制数a= 1xxx xxxx和b= 0xxx xxxx。以下哪项是正确的(您可以勾选多个答案): A>A B A>127 C分不清哪个A或B更大 D B<127 E A>B


需要解释(对此不理解)。谢谢

答案的关键是单词unsigned。这意味着MSB(最左边的位)未用于指示结果符号。处理器使用twos恭维对数字执行加法、减法和比较等数学运算,这意味着要知道二进制字的数值是什么,我们必须知道它是有符号的(可以包含负值)还是无符号的(仅限正数)

因此,在上述情况下,值是无符号的,这意味着A始终大于B,并且A的8位值的MSB设置为1,因此必须至少为128。 正如我们以10秒为单位计数一样,二进制以2为单位工作: 二元的 128 64 32 16 8 4 2 1 十进制的 1000 100 101


但是,如果二进制值是有符号的,则最左边的位将用于表示正数(0)或负数(1),当为负数时,我们需要反转该值并添加一个以返回(负数)结果。

感谢您的快速回复。为什么当msb设置为1时,它至少是128?二进制编号的工作原理与十进制一样,但其幂为2而不是10。所以权重从1开始,然后是2,4,8,16,32,64,最后是128。因此,在最左边(或最重要)位为1的情况下,这意味着1*128。就像12月的100意味着1*100。