鱼C论坛

 找回密码
 立即注册
查看: 1718|回复: 0

[学习笔记] 进制转换诀窍(1)

[复制链接]
发表于 2019-10-1 15:19:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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转换成真值,但怎末转换呢?
  1. String s = "5376";
  2. int n = 0;
  3. n = s.charAt(0)-'0';
  4. //s.charAt()所得的是ASCII码,-'0'便可以得到他的真值
复制代码
但有一个问题,当要把"53"转成真值,因该怎末办呢?

以上做法肯定是行不通的
但是有一个思路
把n*10+下一位数字
这样,n便可以储存53了

用for语句改进一下
  1. String s = "5376";
  2. int n = 0;
  3. for(int i= 0;i < s.length();i++)
  4. {
  5.         n = n*10+s.chatAt(i)-'0';
  6. }
复制代码

                                                                             --------------开始-------------
进制的转换,其实就是串与字符的转换
  1. String s = "012002";
  2. //String s是一个存储3进制的串
复制代码
  1. int n = 0;
  2. for(int i= 0;i < s.length();i++)
  3. {
  4.         n = n*3+s.chatAt(i)-'0';
  5. }
复制代码
n*10是一个进制,10是一个位权!
so..
把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;


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 14:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表