进制转换:
4种进制:10 2 8 16
根据排列组合的知识有6种转换都要熟练
格式:
8进制 0开头
16进制 0x开头
进制的基本原理:
每个位置上的数字代表的数目为 数字的(位置数-1)的次方
比如60的十进制
6(数字)*10(进制数)的2(位置数)-1次方+0(数字)*10的1(位置数)-1次方
原理:
2与10:
进制的基本原理的逆运算:
比如60的十进制
除以10 商就相当于获取了第一个10位余数就是第1个个位
同理 666除以10 就相当于移了一位 余数还是第一位个位
再除以10 就相当于又右移了一位余数拿到10位
这时候就找到了规律:余数的出现和每一位数字书写的顺序相反
最后取完所有余数倒着写出来即可
代码:
使用原理暴力破解
publicstatic void toBinary(int a)
{
StringBuffersb = new StringBuffer();
while(a!=0)
{
sb.append(a%2);
a= a/2;
}
sop(sb.reverse());
}
2与8和16
8是2的三次方 16是四次方
按照进制基本原理变为2进制后3位3位取 就是8进制
4位4位取 就是16进制
10与8和16
两种方法 1:用2进制过渡
2 用进制基本原理 除以8或者16取余数 然后倒着写上来
publicstatic void toHex(int a)
{
StringBuffersb = new StringBuffer();
intc;
while(a!=0)
{
c= a%16;
if(c<10)
sb.append(c);
else
{
switch(c)
{
case(10):
sb.append("A");
case(11):
sb.append("B");
case(12):
sb.append("C");
case(13):
sb.append("D");
case(14):
sb.append("E");
default:
sb.append("F");
}
}
a= a/16;
}
sop(sb.reverse());
}