+ -
当前位置:首页 → 问答吧 → 问个问题

问个问题

时间:2011-10-11

来源:互联网

我想把一个int类型的10进制的数转化为一个16进制的int类型的数
而且要求标准输出,即如果1转化为16进制要求是0x01
Integer.toHexString貌似是将int类型转化成了String类型了
我想要的是int类型

作者: goodbaby86   发布时间: 2011-10-11

查API文档

作者: taodengwen   发布时间: 2011-10-11

这个你得自己编写个转换的方法啊。。

作者: phh1989   发布时间: 2011-10-11

LZ希望得到的是什么呢?
int i = 0x01;和 int i = 1;在内存上是一样的,所以没有一个int类型直接能表现出16进制,内存都是2进制,书写要自己来控制进制,0x表示16进制,0打头表示8进制,缺省是10进制,都是一个效果,也就是说不管用什么进制来书写,内存中保存的二进制都是一样的,即
int i10 = 1; 和 int i16 = 1 的效果是一样的,(i10表示10进制,i16表示16进制)
所以不存在什么 i16 = i10这样的转换

所以想让输出结果表现为16进制,就要以字符串的方式输出,即Integer.toHexString或使用String.format("%08x", i)

作者: qybao   发布时间: 2011-10-11

0x01不是int型

作者: liuyuhua0066   发布时间: 2011-10-11

引用 4 楼 liuyuhua0066 的回复:
0x01不是int型

谢谢你的提醒,那我就要01,不要前面的0x了

作者: goodbaby86   发布时间: 2011-10-11

01那还是16进制么?

作者: liuyuhua0066   发布时间: 2011-10-11

引用 3 楼 qybao 的回复:
LZ希望得到的是什么呢?
int i = 0x01;和 int i = 1;在内存上是一样的,所以没有一个int类型直接能表现出16进制,内存都是2进制,书写要自己来控制进制,0x表示16进制,0打头表示8进制,缺省是10进制,都是一个效果,也就是说不管用什么进制来书写,内存中保存的二进制都是一样的,即
int i10 = 1; 和 int i16 = 1 的效果是一样的,(i10表示10进制……

我想用Integer.toHexString转化16进制,但是它得出来是String型,我想要取它的值,即int型

作者: goodbaby86   发布时间: 2011-10-11

printf();
一个int类型的10进制的数转化为一个16进制的int类型 
int型都一样的啊
有点搞不懂

作者: lcj_up   发布时间: 2011-10-11

我倒 ... int是十进制的怎么变也变不了十六的啊
十进制的是 1 2 3 4 5 6 7 8 9 0
十六进制的是 1 2 3 4 5 6 7 8 9 0 A B C D E 这后面的没法表示的 所以楼主的问题无解

作者: zqfddqr   发布时间: 2011-10-11

引用 3 楼 qybao 的回复:
LZ希望得到的是什么呢?
int i = 0x01;和 int i = 1;在内存上是一样的,所以没有一个int类型直接能表现出16进制,内存都是2进制,书写要自己来控制进制,0x表示16进制,0打头表示8进制,缺省是10进制,都是一个效果,也就是说不管用什么进制来书写,内存中保存的二进制都是一样的,即
int i10 = 1; 和 int i16 = 1 的效果是一样的,(i10表示10进制……

说的很详细了 0x01不是int类型 祝楼主好运

作者: mengxiangyue   发布时间: 2011-10-11

热门下载

更多