• 进制的转换


    进制的定义:

     进制就是进位制

    是人们规定的一种进位方法(百度的解释)

    这里我们可以先不管这些

    我们要说是进制之间的转换

    可以分为两个大类

    1.十进制的数转换成x进制(x可以为任何数)

    2.x进制转换成十进制(x同上)

    那就先说怎么把十进制转换成x进制

    例如:

    我们要把十进制的12转换成二进制

    那么我们该如何去转换呢

    这里就有一个转换的方法

    1.以十进制的数作为被除数 ,然后除以要转换成的进制数(x),得到余数

    2.将上次计算得到的商作为新的被除数除以进制数,得到商和余数

    3.一直循环执行第二步,循环到商为0

    4.当商为0时,将得到的余数从下往上倒序排列,就是我们的结果

    被除数 除数 余数
    12 2 6 0
    6 2 3 0
    3 2 1 1
    1 2 0 1

    注意:当商为0时就不需要去除了

    我们把余数从下往上写就是我们的结果了 1100B(二进制)

    PS:这里的x可以为任何进制,如二进制,十六进制

    上面我们说了可以把十进制转换成任何进制

    这里我们要做的就是把任何进制转换成十进制

    上面我们用的是除法,这里我们要用到的就是除法

    首先

    1.把要转换成十进制的数拆分(把每一位拆开)

    如:123拆分后就是1   2   3 

    2.然后用每个数乘以进制数的

    幂的取值是由每个数的位数来决定的

    关于位数:假如一个数1234 4就是他的第一位,3就是第二位,2就是第三位,1就是第四位...以此类推

    我们乘以的幂就是这个数的位数-1

    3.把每个位数相乘后的积相加就是结果来了

    把110111B转成十进制

    1 1 0 1 1 1
    1*(2)5 1*(2)4 0*(2)3 1*(2)2 1*(2)1 1*(2)0
    32 16 0 4 2 1
              55

     

    我们的结果就是55(十进制)

    这里应该要注意几点:

    1.括号里为什么是2?

    这是因为我们转换前的数是二进制的所以括号里就是2

    倘若换成其它进制括号里的数也要跟着进制数所变化

    2.右上角的小数什么意思?

    这代表的是幂的意思,

    25表示的是5个2相乘 2×2×2×2×2

    而不是2×5

    不过话说回来,这个进制和我们学Java好像没什么关系呀!

     

  • 相关阅读:
    python datetime unix时间戳以及字符串时间戳转换
    Linux下Shell的for循环语句
    分布式学习最佳实践:从分布式系统的特征开始(附思维导图)
    什么是分布式系统,如何学习分布式系统
    Spring Boot 之发送邮件
    v8是怎么实现更快的 await ?深入理解 await 的运行机制
    分布式=高并发=多线程
    半个月使用rust语言的体验
    Enter Query Mode Search Tricks Using Enter_Query Built-in in Oracle Forms
    How to Log Users Login and Logout Details Through Oracle Forms
  • 原文地址:https://www.cnblogs.com/menghujava/p/9598628.html
Copyright © 2020-2023  润新知