• 【java-19-21】java语言基础-进制的基本转换


    进制的基本转换:

    十进制、二进制互转

    1)十进制转化成二进制,除以2取余数

    2)二进制转化成十进制,乘以2的幂数

    十进制、八进制互转

    1)十进制转化成八进制,除以8取余数

    2)八进制转化成十进制,乘以8的幂数

    十进制、十六进制互转 

    1)十进制转化成十六进制,除以16取余数

    2)16进制转化成十进制,乘以16的幂数

    负数的二进制表现形式

    对应的整数二进制取反加1

    例子:

    二进制转化为其他进制

    1)二进制转化成十进制:

    1011  = 1*2(0)+1*2(1)+0*2(2)+1*2(3)= 11

    2)二进制转化成八进制(三个一分段):

    010101110 = 010-----------------101------------------------- 110  =   0256  

                      2=1*2(1)    5=1*2(0) +1*2(2)         6=1*2(1)+1*2(2)

    3)二进制转化成十六进制(4个一分段):

    10101110 = 1010 ------------------------------1110   =  0xAE

                      10=1*2(1)+1*2(3)        14=1*2(1)+1*2(2)+1*2(3)   

    10     11     12      13    14      15

    A       B      C        D     E         F 

    结论:

    八进制数:其实就是二进制中的三个二进制位为一个八进制位

    十六进制:其实就是二进制中的四个二进制位为一个十六进制位

    十进制转化成其他进制

    方法一:

    1)十进制转化成二进制

    6=110

     2)将转化成的二进制,转化成八进制或十六进制参考上方

    方法二:

    参考:https://mp.weixin.qq.com/s?src=11&timestamp=1580911749&ver=2140&signature=h-gqu3GT-YG1BQdytJzof7Itqfk*s8AYilB5100km0LrcnOwMbl2weX-ekZ2DS3c88yVeOT*OKemJJsEPSKlmjkn*3vs2Mh7q4t8-URPAFy1Kmen0zJb4bxodfZ8iX16&new=1

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样

    1)整数部分:

    十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

    • 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;

    • 保留余数,用商继续除以 N,又得到一个新的商和余数;

    • 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;

    • ……

    • 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。

    把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。

    2) 小数部分

    十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

    • 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;

    • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;

    • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;

    • ……

    • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。

    把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。

    下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:

    负数的二进制表现

    负数的二进制最高位是1

    -6的二进制

    补充:

    常常感恩
  • 相关阅读:
    最大子数组问题:股票
    dfs小练 【dfs】
    java小知识点简单回顾
    cdoj841-休生伤杜景死惊开 (逆序数变形)【线段树 树状数组】
    二路归并排序算法
    优秀Python学习资源收集汇总(强烈推荐)
    怎么学习逆向工程?
    __cdecl 、__fastcall、__stdcall
    getchar()、putchar()、gets()、puts()、cin.get()、cin.getline()、getline()
    <cctype>库
  • 原文地址:https://www.cnblogs.com/prince365/p/12266994.html
Copyright © 2020-2023  润新知