400H=0100 0000 0000 B 是无符号数1024D,400H变成十进制带符号数时,我理解为取反加1:1100 0000 0000 就是-1024D
B4H=1011 0100 B 是无符号数180D,B4H变成十进制带符号数时,也理解为取反加1符号位不变:1100 1100 就是-76D
11H=17D,11H=0001 0001 B,为什么变成十进制带符号数是-17D,过程为理解,请好心人帮助解答一下!
400H=0100 0000 0000 B 是无符号数1024D,400H变成十进制带符号数时,我理解为取反加1:1100 0000 0000 就是-1024D
B4H=1011 0100 B 是无符号数180D,B4H变成十进制带符号数时,也理解为取反加1符号位不变:1100 1100 就是-76D
11H=17D,11H=0001 0001 B,为什么变成十进制带符号数是-17D,过程为理解,请好心人帮助解答一下!
你别都一律取反加1啊.
首先,要说清楚待转换的数是多少有效位,然后看最高位是不是1,才决定是否需要取反加1
就拿400H来说吧,如果是11位有效位,400H=100 0000 0000,那么才取反加1得出-1024D,假如规定是12位甚至更多的位,那么400H=0100 0000 0000,最高位是0,直接得出+1024D
不信你用C语言试试,short data=0x400; printf("%d", data);看看是-1024还是+1024.
你对数值编码理解太......