黑马程序员技术交流社区

标题: java中,int型负数,用十六进制如何表示? [打印本页]

作者: heima_huang    时间: 2015-9-3 23:11
标题: java中,int型负数,用十六进制如何表示?
问题:java中,int型负数,用十六进制如何表示?

问题背景:十进制的int型整数,向十六进制转换,将它的二进制形式的32位,分为8段,每段4位对应一个十六进制位,例如:整数10093
二进制形式
0000
0000
0000
0000
0010
0111
0110
1101
十六进制形式
0
0
0
0
2
7
6
d

现有一个十进制负数,它的二进制形式最高位是1,所以最高四位必在1000和1111之间,故转为十六进制时,其最高位在8到F之间。所以猜想最高位介于8和F之间的十六进制数是不是就表示一个负数呢?进一步问,int型负数的十六进制是怎么表示的呢?

作者: zx0210    时间: 2015-9-4 00:06
先将负数取绝对值然后将整数转为二进制,取反之后再加1,可以得到该负数的二进制表达形式,再从右往左每4位转化为一个16进制的数,然后全部拼接起来就成为负数的十六进制表达形式!
作者: asinzuo    时间: 2015-9-4 07:18
不明觉厉,,,
作者: 狮子、    时间: 2015-9-4 08:32
二进制取反加一。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2