A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题: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型负数的十六进制是怎么表示的呢?

3 个回复

倒序浏览
先将负数取绝对值然后将整数转为二进制,取反之后再加1,可以得到该负数的二进制表达形式,再从右往左每4位转化为一个16进制的数,然后全部拼接起来就成为负数的十六进制表达形式!
回复 使用道具 举报
asinzuo 来自手机 中级黑马 2015-9-4 07:18:47
藤椅
不明觉厉,,,
回复 使用道具 举报
二进制取反加一。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马