开发者

二进制、八进制 、十进制、十六进制之间转换的原理详解

开发者 https://www.devze.com 2024-11-03 10:21 出处:网络 作者: Wy_编程
目录C语言编译过程进制转换1、进制的概念1.1 二进制1.2 八进制1.3 十六进制进制在程序中的表现方式十进制与二进制互转将十进制转换成二进制(除2反序取余法)二进制转十进制(权值法)八进制与十进制互转将十进制转换
目录
  • C语言编译过程
  • 进制转换
    • 1、进制的概念
    • 1.1 二进制
    • 1.2 八进制
    • 1.3 十六进制
  • 进制在程序中的表现方式
    • 十进制与二进制互转
      • 将十进制转换成二进制(除2反序取余法)
      • 二进制转十进制(权值法)
    • 八进制与十进制互转
      • 将十进制转换成八进制(除8反序取余法)
      • 八进制转十进制(权值js法)
    • 十六进制与十进制互转
      • 将十进制转换成十六进制(除16反序取余法)
      • 十六进制转十进制(权值法)
    • 快速转换8421法则
      • 二进制快速转换八进制
        • 二进制快速转换十六进制
          • 16进制快速转换2进制
            • 浮点型数据转换成2进制
              • 总结

                本文介绍了进制的概念及其在C语言编程中的应用,进制是进位制的简称,描述了数值在不同进制下的表示方法,常见的进制包括二进制、八进制和十六进制,二进制使用0和1表示,八进制使用0-7数字表示,十六进制使用0-9和A-F表示,文章还介绍了如何在不同进制之间进行转换,如十进制转二进制、八进制及十六进制的方法,通过具体的计算实例,读者可掌握进制转换的基本技巧。

                C语言编译过程

                1   gcc 源码文件.c -o 可执行文件.exe           -o生产exe
                    helloWorld.c -o hell.exe  
                    
                
                1、预处理  宏定义展开、头文件展开、删除注释
                    gcc -E 源码文件 -o 生成文件.phpi       //gcc -E helloworld.c -o hello.i    .i编译文件
                2、编译    检查语法,将文件转成汇编文件
                     gcc -S 预处理生成的.i文件 -o 生成文件.s   //gcc -S hello.i -o hello.s    .s汇编文件
                3、汇编    将汇编文件转成二进制文件
                    gcc -c hello.s -o hello.o       //
                4、链接    将C语言链接库链接到程序中
                    gcc hello.o -o hello.exe  
                

                进制转换

                1、进制的概念

                进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

                1.1 二进制

                二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。

                1.2 八进制

                八进制,Octal,缩写OCT或O,一种以8为基数的计数android法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。

                1.3 十六进制

                十六进编程客栈制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。

                进制在程序中的表现方式

                十进制以正常数字1-9开头,如123
                八进制以数字0开头,如0123
                十六进制以0x开头,如0x123
                二进制C语言不能直接书写二进制数
                二进制八进制十六进制十进制
                0000
                1111
                10222
                11333
                100444
                101555
                110666
                111777
                10001088
                10011199
                101012A10
                101113B11
                110014C12
                110115D13
                111016E14
                111117F15
                10000181016

                十进制与二进制互转

                将十进制转换成二进制(除2反序取余法)

                二进制、八进制 、十进制、十六进制之间转换的原理详解

                二进制转十进制(权值法)

                从二进制的末尾依次乘以2的n次幂(n是从0 开始的)

                小提示: 任何数的0次幂都等于1

                ​ 任何数的1次幂都等于本身

                十进制的 123 使用上面的方法(除2 反序取余法)得到的二进制为1111011

                将1111011 转成10进制

                1∗20+1∗21+0∗22+1∗23+1∗24+1∗25+1∗26=123

                八进制与十进制互转

                将十进制转换成八进制(除8反php序取余法)

                二进制、八进制 、十进制、十六进制之间转换的原理详解

                八进制转十进制(权值法)

                从八进制的末尾依次乘以8的n次幂(n是从0 开始的)

                3∗80+7∗81+1∗82=123

                十六进制与十进制互转

                将十进制转换成十六进制(除16反序取余法)

                二进制、八进制 、十进制、十六进制之间转换的原理详解

                十六进制转十进制(权值法)

                从十六进制的末尾依次乘以16的n次幂(n是从0 开始的)

                11∗160+7∗161=123

                快速转换8421法则

                在对应的位置填1

                4096204810245121286432168421二进制结果
                1111011十进制的1231111011
                1010010016410100100
                11111011000200811111011000
                11111101000202411111101000

                二进制快速转换八进制

                八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)。

                例:

                将二进制从末尾3位一隔
                十进制: 123
                二进制: 1111011
                八进制: 011   按照8431 法则  011 = 3
                        111     按照8431 法则  111 = 7
                        1       按照8431 法则  011 = 1
                转换结果为173   
                    
                同理: 八进制转换二进制时也是将八进制每一位的值转换成3位2进制就可以了
                    
                    173
                    1-------1
                    7-------111
                    3-------011
                    
                    二进制结果就是: 1111011
                    
                
                
                

                二进制快速转换十六进制

                十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)。

                例:

                将二进制从末尾3位一隔
                十进制: 123
                二进制: 1111011
                十六进制: 1011   按照8431 法则  011 = b
                        0111        按照8431 法则  111 = 7
                转换结果为7b
                    
                
                

                16进制快速转换2进制

                7B
                7----------111
                B----------1011
                
                结果: 1111011
                
                

                浮点型数据转换成2进制

                十进制的小数转换成二进制:小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转化后的结果。(小数位有多少位就乘以多少次) ;从上往下取值;

                将小数部分依次乘以2 如果结果中整数部分值为1 取值为1 如果为0 值
                为0 小数位数有多少位 乘多少次
                double a = 123.4567;
                
                0.4567
                  *2
                0.9134      0
                  *2
                1.8268      1
                0.8268    
                  *2        
                1.6536      1
                0.6536
                  *2
                1.3072      1
                
                0.4567 = 0111
                
                

                总结

                到此这篇关于二进制、八进制 、十进制、十六进制之间转换的原理详解的文章就介绍到这了,更多相关进制转换原理内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

                0

                精彩评论

                暂无评论...
                验证码 换一张
                取 消

                关注公众号