java int to hex_Java Integer.toHexString()十进制转成十六进制

首页 > 基础教程 > 常用类 > 常用 Integer类

Java Integer.toHexString()十进制转成十六进制

java中Integer.toHexString()用于将十进制转成十六进制输出。

定义

String toHexString(int i) //以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

也就是将传入的数值十进制转成十六进制

源码

public static String toHexString(int i) {

return toUnsignedString0(i, 4);

}

private static String toUnsignedString0(int val, int shift) {

// assert shift > 0 && shift <=5 : "Illegal shift value";

//计算这个int转换成二进制后占多少bit(123-->>7)

int mag = Integer.SIZE - Integer.numberOfLeadingZeros(val);

//用于确定最后生成的字符串有几个字符

int chars = Math.max(((mag + (shift - 1)) / shift), 1);

char[] buf = new char[chars];

//具体解析出每个字符是什么

formatUnsignedInt(val, shift, buf, 0, chars);

// Use special constructor which takes over "buf".

return new String(buf, true);

}

static int formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {

int charPos = len;

int radix = 1 << shift;//2^shift (此例子是2^4)

int mask = radix - 1; //(16进制-->>15 8进制-->>7)

do {

//val&mask 相当于 val%(mask+1) 这里是 123%16

buf[offset + --charPos] = Integer.digits[val & mask];

val >>>= shift;

} while (val != 0 && charPos > 0);

return charPos;

}

例子

public class IntegerToHexStringDemo {

public static void main(String[] args) {

byte a=-1;

System.out.println("-1 hex : 0x"+Integer.toHexString(a));

System.out.println("-1&0xff : 0x"+Integer.toHexString(a&0xff));

System.out.println("十进制转十六进制:"+Integer.toHexString(120));

}

}

输出

-1 hex : 0xffffffff

-1&0xff : 0xff

十进制转十六进制:78

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值