十六进制和十进制之间的转化
程序员文章站
2022-03-13 17:45:30
...
十进制转化成十六进制
原理:除16取余,直到原数为0,所得余数逆序即为十六进制数(大于十的转换成相应的字母)
public static String decimalToHex(int decimal)
{
String hex="";
while(decimal!=0)
{
char ch;
int yu=decimal%16;
if(yu<=9)
ch=(char)(yu+'0');
else
ch=(char)(yu-10+'A');
hex=ch+hex;//望前加
decimal/=16;
}
return hex;
}
十六进制转化成十进制
原理:霍纳算法
解释:
当十六进制数为 a1a2a3……an时
十进制数为(( (a1*16+a2)*16+a3 )*16+……+an-1)*16+an
例如十六进制数 3FA
转化十进制时易想到用:3* 162+15* 161+10* 160
易发现规律:上式等于:(3*16+15)*16+10
public static int hexToDecimal(String hex)
{
int decimal=0;
hex.toUpperCase();//先全换成大写字母
for(int i=0; i<hex.length(); i++)
{
if(Character.isLetter(hex.charAt(i)))//当是字母时
decimal=decimal*16+hex.charAt(i)-'A'+10;
else
decimal=decimal*16+hex.charAt(i)-'0';
}
return decimal;
}
推荐阅读
-
PHP中空字符串、零、null、empty和false之间的关系
-
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
-
输入一个十六进制的字符串转换为十进制的整数
-
Fab 和 Dialog 之间的过渡效果(Fab and Dialog Morphing Animation)_html/css_WEB-ITnose
-
Onmouseover、onmousemove、onclick、onmouseup和onmousedown之间的区别介绍
-
Oracle中通过substr和instr实现截取指定字符之间的字符串:
-
PHP中空字符串介绍0、null、empty和false之间的关系_PHP
-
整数与IP之间的转化
-
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
-
怎么比较mysql里不同的两张表的差异;还有mysql和postgres之间同表的差异比较?