int转16进制

shantong_martin 2012-01-18 01:58:16
例如:int i = 13;
byte j;
我想让j=0x13;怎么让i转换,让j=0x13
...全文
5489 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
osickleo 2014-08-28
private byte getByteTime(int time) { byte bt = (byte) ((0xff & time) + (0xff & time) / 10 * 6); return bt; }
回复
sarainmonkey 2012-11-25
楼主不厚道啊。。。。
回复
黄小飞 2012-09-20
怎么看不到?
回复
love1956 2012-08-15
这货可恶啊
回复
wangyu271972680 2012-02-20
你好,你是怎么转的呢,能贴出代码吗
回复
shantong_martin 2012-01-19
昨天纠结到4点终于解决
回复
huhk 2012-01-18
1. int 转16进制可以,但放到byte. 数据范围不够。
如果你一定要这样做,

int i = 13;
System.out.println(Byte.parseByte(Integer.valueOf(Integer.valueOf(i).toString(), 16).toString()));
可能会异常。

回复
rickhunterchen 2012-01-18
楼上几位已经告诉LZ怎么把int转换成16进制了。

我这里贴上16进制字符串转换成byte数组,以供参考。
/**   
* Convert hex string to byte[]
* @param hexString the hex string
* @return byte[]
*/
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}

/**
* Convert char to byte
* @param c char
* @return byte
*/
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}

回复
快跑别回头 2012-01-18
不明白,帮顶吧,同求大神指导
回复
shantong_martin 2012-01-18
说的什么,我就是想把13弄成0x13付给一个byte,会转的上码,大虾们
回复
结贴是美德 2012-01-18
0x13和13只是表现形式 他俩内存中中二进制码是一样的
回复
shantong_martin 2012-01-18
这不行string哪能转成一byte
回复
benluobo 2012-01-18
"0x" + Integer.toHexString(k)
回复
benluobo 2012-01-18
Integer.toHexString(i)
回复
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2012-01-18 01:58
社区公告
暂无公告