负数转16进制
http://wenku.baidu.com/link?url=vCS98zuSbS1cRDrvmGc7RdasMmhzUgGCqzHSZzhnVHy-BPO37X_X1ktz3zOoDZ_1D1Tf9FWnHsJQJOZA-LYYgkwskoC_mozWeFDtsxhQPQy
现在想知道,714在计算机中如何表示?在计算机中,正数以原码的形式表达。
正数的原码,反码,补码,都相同。
现在想知道,-714在计算机中如何表示?在计算机中,负数以原码的补码形式表达。
正数有正数的原码
负数有负数的原码
取反和反码不是同一个概念
一个是在计算机中表达,一个是科学计数方式表达。
714 原码: 0000 0010 1100 1010 02CA
-714的原码: 1000 0010 1100 1010
负数的反码:1111 1101 0011 0101(符号位不变)
负数的补码:1111 1101 0011 0110 FD36
-714计算机储存式: 1111 1101 0011 0110
下面为:由正数原码求负数的计算机储存式。
-714
714 化成16进制 02CA,二进制
0000 0010 1100 1010
取反(不是反码,正数的反码是本身)
1111 1101 0011 0101
加1
1111 1101 0011 0110
FD36
负数转16进制,其正数取反码+1,即可。
16进制转成10进制。
如果是正数:
0000 0010 1010 1010, 直接算。 1*2^9 + 1*2^7 + 1*2^5 + 1*2^3 + 1* 2^1
或者 02 CA 2*16^2 + C*16^1 + A
如果是负数:
转成正数。减1,取反。
第一个已F打头,表示负号。
先减去1,再取反,换成正数,最后再补上符号
FD35
1111 1101 0101 0101
取反
0000 0010 1010 1010
02CA = 2*16^2+C*16+A*1 = 714
最后取负数,为A: -714。
计算机存储的二进制,判断一个数正负:看最高位符号为1还是0,(4个一位)
最高位是有讲究的: 还要看数据所占的总字节数,例如1个字节: -128~127
1000 0000, -128,计算机储存 80
0000 0001, 1, 计算机储存 01
1000 0001, -1 ,计算机储存 FF
计算机存储的16进制,判断一个正负:
16进制,首位 8以上的数据为负