我怀疑为什么我们在$this->load->model('modelNameA','aliasName');
$this->load->model('modelNameB','aliasName');
中使用-1作为11111111,而不是10000001.因为我们学习第一位用于指定符号,而七位的其余部分用于值。因此,设计师决定使用-1作为
[signed int
= 1,first bit
= 127]但不是[Value by seven bits
= 1,first bit
= 1]
答案 0 :(得分:1)
C和C ++允许符号和大小(-1表示10000001
)和2的补码形式(-1表示11111111
)。
此外,两种语言都允许使用一种补语形式(-1与11111110
一样)。
然而,在大多数现存平台上都使用了二进制补码形式。一个主要优点(你问的“为什么”)是这些值与无符号算术的环绕相同,这是你在C和C ++中用unsigned
得到的。换句话说,如果将相同的位解释为无符号值,则它与负值的区别恰好为2 n ,其中 n 是值表示位的数量。