本文记录小编遇到的一种10进制转换为16进制的一种算法。
因为小编能力有限,所以只能做出来0到255之间的十进制数转换为十六进制数。
class HexaDecimal
{
public static void main(String[] args)
{
int i1=60;//初始值为60,下文中60均代表i1
int i2=i1&15;//与4个1相与,得到的结果是60的二进制数的最低四位,其余位数全部舍掉
/*
String j=“”;//因为定义的是字符串类型,所以在下方都在最后加了一个“”,以将其转换为字符串类型。
三元表达表达式:
IF(i2>9) //此时i2的结果是60的低四位二进制数字
{//如果i2大于9,就相当于用ABCDEF中的字母来代表
//用i2-10再加上‘A'的ASCII,再将其转换为一个字符。
//例如:如果i2是14,则14-10+'A'的ASCII=4+65(A的ASCII)=69,
//再将69转换为字符,正好得到的是字符'E',E在十六进制中正好是14
j=(char)(i2-10+'A')+"";
}
ELSE
{//如果i2不大于9,就是小于等于9
j=i2+"";//则直接将数字赋值给j
}
*/
String j=(i2>9)?(char)(i2-10+'A') + "":i2+ "";//如果感觉三元表达式比较复杂,则可以看上方的注释代码。
//将i1向右移四位,这样就把刚才计算的四位舍掉,在继续上述的操作。
//因为下方的部分都已经重复,这里小编就不在解释第二遍。
int temp=i1>>>4;
i2=temp&15;
String k=(i2>9)?(char)(i2-10+'A')+"" : i2+"";
System.out.println(k+""+j);
}
}
这只是小编偶然间遇到的,如果有错误或者理解不正确的地方,还望您指出。