zoukankan      html  css  js  c++  java
  • 进制转换

    进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。—— 百度百科

    现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用0和1两个数字及其组合来表示任何数。进位规则是“逢2进1”,数字1在同的位上表示不同的值,按从右至左的次序,这个值以二倍递增。

    在计算机的内部,运行各种运算时,都是以二进制的方式来运行的。

    对于整数,常用的进制有二进制、八进制、十进制以及十六进制

    • 二进制: 0, 1,满2进1
    • 八进制: 0 - 7,满8进1,计算机内以0开头表示
    • 十进制:0 - 9, 满10进1
    • 十六进制: 0-9及A-F,满16进1,计算机内以0x或者0X开头表示。此处的A-F不区分大小写,如0x21AF+1 = 0X21B0

    在golang中,不能直接使用二进制来表示一个整数,它沿用了C的特点。但是可以以二进制的形式输出它。

    var i int = 5
    //二进制输出
    fmt.Printf("%b", i) //输出101
    
    var j int = 011
    fmt.Println("j = ", j) //输出9
    
    var k int = 0x11
    fmt.Println("k = ", k) //输出17
    

    不同进制的对比

    十进制 十六进制 八进制 二进制
    0 0 0 0
    1 1 1 1
    2 2 2 10
    3 3 3 11
    4 4 4 100
    5 5 5 101
    6 6 6 110
    7 7 7 111
    8 8 10 1000

    其他进制转十进制

    规则:从最低位开始(右边的),将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。

    二进制转十进制

    1011 = 1 * 23+0 * 2 2+1 * 2 1+1 * 20 = 8 + 2 + 1 = 11

    八进制转十进制

    01011 = 1 * 83 + 0 * 82 + 1 * 81 + 1 * 80 = 521

    十六进制转十进制

    0x1011 = 1 * 163 + 0 * 162 + 1 * 161 + 1 * 160 = 4113

    十进制转其他进制

    十进制转二进制

    规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

    十进制转八进制

    规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。

    十进制转十六进制

    规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。

    二进制转其他进制

    二进制转八进制

    规则:将二进制数每三位一组(从低位开始组合),转成对应的八进制数即可。

    如:11010101 => (11)(010)(101) => 0325

    二进制转十六进制

    规则:将二进制数每三位一组(从低位开始组合),转成对应的八进制数即可。

    如:11010101 => (1101)(0101) =>0xD5

    其他进制转二进制

    八进制转二进制

    规则:将八进制的每1位,转成对应的一个三位的二进制数即可。

    如:0237 => (010)(011)(111) => 10011111

    十六进制转二进制

    规则:将八进制的每1位,转成对应的一个四位的二进制数即可。

    如:0x237 => (0010)(0011)(0111) => 1000110111

  • 相关阅读:
    [初赛备战]计算机基础知识错题集(1)
    [POJ2976][POJ2728]01分数规划问题的二分答案解法
    关于字符串哈希一些模板和心得
    [算法笔记]分块算法从入门到TLE
    [CodeForces510c]Fox And Names
    C++/C语言入门简单教程(深圳中学科学联盟信息学会)
    [BZOJ1878][SDOI2009]HH的项链解题报告
    [BZOJ3717][PA2014]Pakowanie解题报告
    转 各种浏览器的内核是什么
    深入理解CSS3 Animation 帧动画
  • 原文地址:https://www.cnblogs.com/itbsl/p/9855403.html
Copyright © 2011-2022 走看看