Integer类里面有如下一段代码:
final static char[] digits = {
'0' , '1' , '2' , '3' , '4' , '5' ,
'6' , '7' , '8' , '9' , 'a' , 'b' ,
'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,
'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
'o' , 'p' , 'q' , 'r' , 's' , 't' ,
'u' , 'v' , 'w' , 'x' , 'y' , 'z'
};
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}
这一段代码完整地说明了十进制转化为二进制,八进制,十六进制整个流程,toUnsignedString方法的shift的参数,当shift为1是为二进制,当shift为3是八进制,当shift为4是十六进制。
引用
举例:当toUnsignedString(100,4)时,输入为:64
上例中,十进制100对于二进制为0110 0100,转化为十六进制时传入的shift值为4,具体转化的算法如下:
第一步:从 0110 0100 拿出最后的相对应shift的值的个数,这里为0100,再和1111(这一个值是从1 << shift得到的)相与
0100
& 1111
————
0100
得出的0100,相当十进制的 4,得到4后,从digits 数组里面拿出下标为4里面的值,此处也为4
第二步:
将0110 0100右移shift的值的个数,变为0000 0110,拿出最后的相对应shift的值的个数,这里为0110,再和1111相与
0110
& 1111
————
0110
得出的0110,相当十进制的 6,得到6后,从digits 数组里面拿出下标为6里面的值,此处也为6
所以我们就得到了十六进制的64,其他的进制转化也差不多类似的。
分享到:
相关推荐
Android刮刮乐源码,很有意思的小程序,欢迎下载
Unity游戏源码分享-有意思的科普游戏3D-Electronic-Blocks-master
界面仿制有意思吧(应该是以前的)网站,类豆瓣清新风格,全站可生成HTML,适合用来做文学、情感、新鲜事分享类站点使用。 自存备用
一、定位:以区块链为底层技术的电商平台, 二、逻辑:消费购买力可产出MTSC,MSTC可用于购物以及交易后续的生态支付 三、特点:无需投资,即可加入。两种交易方式,实时交易:平台交易立马变现。...
这是一个用一个用java编写的动态文字效果程序 其中有很多关于java api的使用
《Cocos2d-Js开发之旅-从HTML5到原生手机游戏》源码
c# winform 原来机箱中的主板能唱歌 发出很多美妙的声音 源码 很有意思 和大家一起看看 _(\_/) ,((((^`\ (((( (6 \ ,((((( , \ ,,,_ ,((((( /"._ ,`, ((((\\ ,... ,(((( / `-.-' ))) ;' `"'"'""(((( ( ...
C#有意思的算法源码:百钱百鸡算法
易语言源码易语言趣味隐藏源码.rar 易语言源码易语言趣味隐藏源码.rar 易语言源码易语言趣味隐藏源码.rar 易语言源码易语言趣味隐藏源码.rar 易语言源码易语言趣味隐藏源码.rar 易语言源码易语言趣味隐藏源码....
c# piano 钢琴 生成midi 播放midi 很有意思的 源码 和大家一起学习
这是一个exe的绑定程序C++源码,很有意思。
适用范围: 文章站源码,小清新源码,仿有意思吧源码,资讯站源码,DEDE文章模板 运行环境: PHP、MYsql [dede v5.7内核] 安装说明:见压缩包内安装教程 其他说明:dede小清新文章站源码,适用于美图,唯美图片,...
HTML5养成游戏《我和小狗的一天》源码 挺有意思的源码,有兴趣的朋友可以参考下
源码简介 : 演示地址:以截图为准 适用范围: 文章站源码,小清新源码,仿有意思吧源码,资讯站源码,DEDE文章模板 演示地址:以截图为准 运行环境: PHP、MYsql [dede v5.7内核] 安装说明:见压缩包内安装教程 其他...
一个类似360助手的悬浮球源码,带动画效果的,有兴趣的朋友可以下载来试试,可以扩展到你的程序中。融合性非常好!
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
有意思的字母连连看Delphi源码版,看到这个漂亮界面了么?不过它是使用控件美化出来的效果,控件名称:VCLskin控件。本连连看是一个保送生写的,程序内核的方法确实牛逼哦。游戏有多关、可保存成绩,可设置难易程度...
Unity 版我的世界示例源码 MineCraft,很有意思的一个项目示例源码
非常有趣的光影效果,看一眼就会喜欢的不得了,真心推荐,真舍不得共享的