• C语言基础(3)-二进制、八进制、十六进制


    1.二进制

    一个位只能表示0或者1两种状态,简称bit(比特)

    一个字节为8个二进制数,称为8位,简称BYTE(字节)

    一个字为2个字节,简称WORD.

    两个字为双字,简称DWORD,占32个bit

    大写的B代表字节,小写的b代表比特

    2.八进制

    八进制为以8为基数的数制系统,C语言当中0开头表示八进制,0666;八进制数为逢八进1,即:

     

    0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20

    在C语言中不能直接表达二进制数,但可以表达八进制数,010就是十进制的8,012就是十进制的10。

     

    3.十六进制

    十六进制值16为基数的数制系统,在C语言中以0x开头表示十六进制。

     

    4.十进制转二进制、八进制、十六进制的方法

    十进制数转化8进制的方法:

    用十进制数除以8,分别取商和余数,当商为0的时候,将余数倒着数就是转化后的结果。

     

    十进制数转化16进制的方法:

     

     

    用十进制数除以16,分别取商和余数,当商为0的时候,将余数倒着数就是转化后的结果。

     

    十进制数转化2进制的方法:

    用十进制数除以2,分别取商和余数,当商为0的时候,将余数倒着数就是转化后的结果。

    示例:将十进制数的23转换为2进制数

                商           余数

          2 |___23____  1

         2 |___11____  1 

         2 |____5___  1

         2  |____2____ 0

         2  |____1____1

             0       

    将余数反转,为10111,即:23

     

    5.其它进制转换

    十进制 八进制 二进制 十六进制
    0 0 000 0
    1 1 001 1
    2 2 010 2
    3 3 011 3
    4 4 100 4
    5 5 101 5
    6 6 110 6
    7 7 111 7
    8 10 1000 8
    9 11 1001 9
    10 12 1010 a
    11 13 1011 b
    12 14 1100 c
    13 15 1101 d
    14 16 1110 e
    15 17 1111 f
    16 20 10000 10
    17 21 10001 11

    二进制转八进制

    010 101 111 010 101 111 101 010 101 111 二进制(每三位分割,不足三位补0)
    2      5     7     2    5    7     5    2     5     7   八进制

    八进制转二进制

    032

    011 010  即 11010

    二进制转十六进制

    0111 1100 0001 1011 1111 0111   二进制(每四位分割,不足四位补0)
    7        c       1        b      f      7      十六进制

    即:0x7c1bf7

    十六进制转二进制

    0x4dafe1                                     十六进制
    0100 1101 1010 1111 1110 0001   二进制

  • 相关阅读:
    高手 读书笔记-1.精英社会的神话
    企业IT架构转型之道 读书笔记-1.阿里巴巴集团中台战略引发的思考
    Redis学习-内存优化
    Redis学习笔记--常用命令
    Go语言备忘录(3):net/http包的使用模式和源码解析
    Go语言备忘录(2):反射的原理与使用详解
    Go语言备忘录(1):基本数据结构
    Go的接口总结
    Go的类型断言解析
    StrangeIoc框架学习
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6228887.html
走看看 - 开发者的网上家园