juhugufudu 发表于 2019-10-1 15:19:39

进制转换诀窍(1)

本帖最后由 juhugufudu 于 2019-10-1 16:18 编辑

                                                                                 ----------------启蒙篇------------------0.10进制转成2进制
10/2的余数是0,结果是5
5/2的余数是1,结果是2
2/2的余数是0,结果是1
1/2的余数是1,结果为0
2进制转成10进制
0101 = 0*20+1*21+0*22+1*23 = 10


1.串与数值的转换
串转到真值如“5376”,要转成真值,可以把5转换成真值,但怎末转换呢?
String s = "5376";
int n = 0;
n = s.charAt(0)-'0';
//s.charAt()所得的是ASCII码,-'0'便可以得到他的真值
但有一个问题,当要把"53"转成真值,因该怎末办呢?
{:10_272:}
以上做法肯定是行不通的
但是有一个思路
把n*10+下一位数字这样,n便可以储存53了
{:10_326:}
用for语句改进一下
String s = "5376";
int n = 0;
for(int i= 0;i < s.length();i++)
{
      n = n*10+s.chatAt(i)-'0';
}

                                                                           --------------开始-------------进制的转换,其实就是串与字符的转换
String s = "012002";
//String s是一个存储3进制的串
int n = 0;
for(int i= 0;i < s.length();i++)
{
      n = n*3+s.chatAt(i)-'0';
}{:10_248:}n*10是一个进制,10是一个位权!
so..{:10_307:}
把10改成3,便是把012002转成十进制!
n = 0*3+0 = 0;
n = 0*3+1 = 1;
n = 1*3+2 = 5;
n = 2*3+0 = 6;
n = 6*3+0 = 18;
n = 18*3+2 = 56;
n = 56;


页: [1]
查看完整版本: 进制转换诀窍(1)