java中Integer类toUnsignedString方法

论坛看到一篇文章,点进去看到Integer.toHexString()这个方法,如下图:

java中Integer类toUnsignedString方法

然后就去eclipse敲了这个方法点了进去

java中Integer类toUnsignedString方法

然后继续往下点:

java中Integer类toUnsignedString方法

这个方法说明是将整数转为一个无符号数,首先看参数,int i 很明显就是要转换的整数,shift得看了下面才知道是什么意思。

首先新建一个数组,放那备用,radix是进制数,1左移shift位就是i的进制数。看了同类其它两个方法就知道了,如下图:

java中Integer类toUnsignedString方法

java中Integer类toUnsignedString方法java中Integer类toUnsignedString方法

只知道toBinaryString这个方法,不过也不难得出shift这个参数。接着往下看,定义一个mask等于进制数减1,下面一个do...while循环,i & mask 就是把高位干掉,先赋值低位的,然后i又右移,赋值给i,注意,是无符号右移。然后继续循环。

java中Integer类toUnsignedString方法

继续……………………

java中Integer类toUnsignedString方法

好吧,复制一个数组,System.arraycopy();

java中Integer类toUnsignedString方法

OVER