您的位置:首页 > 其它

04 基本元素 进制转换

2015-06-30 13:21 246 查看
进制转换:

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());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: