asc("保")却得到的是-20061,为什么我计算的不是-20061?这个-20061是不是"保"的机内码的2进制对应的10进制?
----------------------------------------------------
我知道问题的原因啦。@H_403_2@ 负整数在计算机中是以补码形式储存的,补码是怎么样表示的呢,这里还要引入另一个概念——反码,所谓反码就是把负数的原码(负数的原码和和它的绝对值所对应的原码相同,简单的说就是绝对值相同的数原码相同)各个位按位取反,是1就换成0,是0就换成1,如-1的原码是00000001,和1的原码相同,那么-1的反码就是11111110,而补码就是在反码的基础上加1,即-1的补码是11111110+1=11111111,@H_403_2@ @H_403_2@所以对于”保“的2进制”1011000110100011“,如果想计算出对应的10进制,要先求出@H_403_2@"1011000110100011"的原码,由于”1011000110100011“加1得到的补码,那么我们再减1就是得到反码”1011000110100010",”1011000110100010"的原码是"1100111001011101",@H_403_2@"1100111001011101"的有符号的10进制=-((2的14次方)+(2的11次方)+(2的10次方)+(2的9次方)+(2的6次方)+(2的3次方)+(2的2次方)+(2的0次方))=-20061@H_403_2@搞定!!!
原文链接:https://www.f2er.com/vb/258228.html