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

 更新时间:2024年11月02日 16:27:15   作者:Wy_编程  
本文介绍了进制的概念及其在C语言编程中的应用,进制是进位制的简称,描述了数值在不同进制下的表示方法,常见的进制包括二进制、八进制和十六进制,二进制使用0和1表示,八进制使用0-7数字表示,十六进制使用0-9和A-F表示,文章还介绍了如何在不同进制之间进行转换

本文介绍了进制的概念及其在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 生成文件.i       //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为基数的计数法,采用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反序取余法)

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

从八进制的末尾依次乘以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

总结

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

相关文章

  • c++中八大排序算法

    c++中八大排序算法

    本篇文章主要介绍了八大排序算法,详细的介绍了八个算法思想,实现代码,稳定性,时间复杂度等,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • C++语言实现hash表详解及实例代码

    C++语言实现hash表详解及实例代码

    这篇文章主要介绍了C++语言实现hash表详解及实例代码的相关资料,需要的朋友可以参考下
    2017-01-01
  • C++ OpenCV实现白平衡之完美反射算法

    C++ OpenCV实现白平衡之完美反射算法

    完美反射算法是白平衡各种算法中较常见的一种,比灰度世界算法更优。本文将利用C++和OpenCV实现白平衡中的完美反射算法,需要的可以参考一下
    2022-05-05
  • C++/CLI在vs上的安装和初步使用教程

    C++/CLI在vs上的安装和初步使用教程

    本文给大家介绍C++/CLI在vs上的安装和初步使用,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • C++中的STL常用算法之遍历算法详解

    C++中的STL常用算法之遍历算法详解

    这篇文章主要介绍了C++中的STL常用算法之遍历算法详解,ransform() 可以将函数应用到容器的元素上,并将这个函数返回的值保存到另一个容器中,它返回的迭代器指向输出容器所保存的最后一个元素的下一个位置,需要的朋友可以参考下
    2023-12-12
  • C语言编程中生成随机数的入门教程

    C语言编程中生成随机数的入门教程

    这篇文章主要介绍了C语言编程中生成随机数的入门教程,包括利用rand()函数来编写随机数生成器的示例,要的朋友可以参考下
    2015-12-12
  • C语言枚举(enum)和联合(union)实例分享

    C语言枚举(enum)和联合(union)实例分享

    在本篇文章里小编给大家整理了关于C语言枚举(enum)和联合(union)实例内容,需要的朋友们可以学习下。
    2020-03-03
  • C语言图书管理系统实验

    C语言图书管理系统实验

    这篇文章主要为大家详细介绍了C语言图书管理系统实验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C++数据结构之文件压缩(哈夫曼树)实例详解

    C++数据结构之文件压缩(哈夫曼树)实例详解

    这篇文章主要介绍了C++数据结构之文件压缩(哈夫曼树)实例详解的相关资料,利用哈夫曼编码的方式对文件进行压缩,并且对压缩文件可以解压,需要的朋友可以参考下
    2017-07-07
  • C++超详细讲解拷贝构造函数

    C++超详细讲解拷贝构造函数

    我们经常会用一个变量去初始化一个同类型的变量,那么对于自定义的类型也应该有类似的操作,那么创建对象时如何使用一个已经存在的对象去创建另一个与之相同的对象呢
    2022-06-06

最新评论