精华内容
下载资源
问答
  • 一、0x十六进制和0八进制 0x开头是16进制 英文:hexadecimal 简称HEX 0开头是8进制 英文: octal 简称OCT 八进制数是一种逢八进一的计数体制,基数是8,用0~7表示,如077。 八进制数以数字0开头。 十六进制数是一种...

    一、0x十六进制和0八进制

    0x开头是16进制 英文:hexadecimal 简称HEX
    0开头是8进制 英文: octal 简称OCT

    • 八进制数是一种逢八进一的计数体制,基数是8,用0~7表示,如077。
    • 八进制数以数字0开头。
    • 十六进制数是一种逢十六进一的计数体制,基数是16,用09,AF表示,如0xFF或0XFF。
    • 十六进制数以数字0和字母x的组合0x或0X开头。其中字母x是不区分大小写的,即0x与0X等价。
    Note:

    输出打印八进制数时 %o 这里是字母 o

    int a = 12; 把数 a 分别 以十进制,八进制,十六进制形式 输出打印

    printf("%d,%o,%x", a, a, a);//不显示数制前缀

    printf("%#d,%#o,%#x", a, a, a);//显示数制前缀

    参考链接

    https://blog.csdn.net/PrismMatrix/article/details/80402093

    二、十六进制和字节 位 二进制的关系

    1字节 = 2个十六进制数位 = 8个二进制数位

    在这里插入图片描述

    因此,1个16进制数对应4个二进制数位,2个16进制数位对应8个二进制数位,及1个字节。

    展开全文
  • 十六进制二进制对应关系 二进进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 十六进制 0 1 2 3 4 ...

    十六进制与二进制对应关系

    二进进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
    十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F

     

    展开全文
  • 对于基础薄弱的读者,本节的内容可能略显晦涩枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来...将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。...

    对于基础薄弱的读者,本节的内容可能略显晦涩和枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来阅读。但是本节所讲的内容是学习编程的基础,是程序员的基本功,即使现在不学,迟早也要回来学。

    上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。

    将二进制、八进制、十六进制转换为十进制

    二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

    假设当前数字是 N 进制,那么:

    对于整数部分,从右往左看,第 i 位的位权等于Ni-1

    对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。

    更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。

    1) 整数部分

    例如,将八进制数字 53627 转换成十进制:

    53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十进制)

    从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… 第n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    注意,这里我们需要以十进制形式来表示位权。

    再如,将十六进制数字 9FA8C 转换成十进制:

    9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)

    从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    将二进制数字转换成十进制也是类似的道理:

    11010 = 1×24 + 1×23 + 0×22 + 1×21 + 0×20 = 26(十进制)

    从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第4位的位权为 23=8,第5位的位权为 24=16 …… 第n位的位权就为 2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    2) 小数部分

    例如,将八进制数字 423.5176 转换成十进制:

    423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 …… 第m位的位权就为 8-m。

    再如,将二进制数字 1010.1101 转换成十进制:

    1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 10.8125(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16 …… 第m位的位权就为 2-m。

    更多转换成十进制的例子:

    二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)

    二进制:101.1001 = 1×22 + 0×21 + 1×20+ 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)

    八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)

    八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)

    十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

    将十进制转换为二进制、八进制、十六进制

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

    1) 整数部分

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

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

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

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

    ……

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

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

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

    bf34eb60b56d9343bed9a15e54e49db6.png

    从图中得知,十进制数字 36926 转换成八进制的结果为 110076。

    下图演示了将十进制数字 42 转换成二进制的过程:

    5ac13e9d9daa3fc7c4626ae596e3c4ed.png

    从图中得知,十进制数字 42 转换成二进制的结果为 101010。

    2) 小数部分

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

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

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

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

    ……

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

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

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

    67bbce757e5e2cc276adda32ef3cc16e.png

    从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

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

    49ecdf92fe173fd20d7fb1abeffeaadb.png

    从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。

    如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

    十进制数字 369260.930908203125 转换成八进制的结果为 110076.7345;

    十进制数字 42.0.6875 转换成二进制的结果为 101010.1011。

    下表列出了前 17 个十进制整数与二进制、八进制、十六进制的对应关系:

    十进制

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    二进制

    0

    1

    10

    11

    100

    101

    110

    111

    1000

    1001

    1010

    1011

    1100

    1101

    1110

    1111

    10000

    八进制

    0

    1

    2

    3

    4

    5

    6

    7

    10

    11

    12

    13

    14

    15

    16

    17

    20

    十六进制

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    A

    B

    C

    D

    E

    F

    10

    注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

    十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;

    十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;

    十进制 0.625 对应的二进制为 0.101,是一个有限小数。

    二进制和八进制、十六进制的转换

    其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

    1) 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

    4d20189158bd5009f71e26664e7c201d.png

    从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。

    八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

    caba1e8b4bb541f952c4f28fda3e6751.png

    从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。

    2) 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

    3646535f2f4ebfb8ff87273857a981bc.png

    从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。

    十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:

    39e2a46be45746662e6a072e460c5df5.png

    从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。

    在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

    总结

    本节前面两部分讲到的转换方法是通用的,任何进制之间的转换都可以采用,只是有时比较麻烦而已。二进制和八进制、十六进制之间的转换有非常简洁的方法,所以没有采用前面的方法。

    展开全文
  • 十六进制二进制之间有非常方便的转化关系: 一位16进制数可以之间转变成4位二进制数,可记住如下关系之间转换

    十六进制与二进制之间有非常方便的转化关系:

    一位16进制数可以直接转变成4位二进制数,因此2个16进制数字就可以代表一个byte字节。可记住如下关系之间转


    展开全文
  • 然后我就想,这不是两个字符吗,分别是F F,一个字符是一个字节,两个字符是两个字节,怎么就成一个十六进制字节,就成一个字节了。就是这种想法,整整困扰了我将近一年的时间。 这几天在写论文,要在数据压缩上...
  • 二进制、八进制、十进制、十六进制关系及转换

    万次阅读 多人点赞 2019-02-21 21:20:22
    二进制,八进制,十进制,十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社&amp...
  • 十六进制二进制

    2020-06-24 21:09:06
    十六进制是计算机中数据的一种表示方法,与十进制的对应关系是:十六进制的0~9对应十进制数值0-9,A~F对应十进制数值10-15。 现在你编写一个程序,完成一个十六进制数到二进制表示的转换。 Input 输入有多行,...
  • 字节、十六进制二进制
  • 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i位的位权等于Ni-1 对于小数部分,恰好相反,要从左...
  • 二进制:逢2进1; 由01组成 十六进制:逢16进1, 十六进制由0-9,A-F组成 与十进制的对应关系 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 贴士:十六进制一般会以“0x”开头,...
  • 众所周知, 内存地址空间是用16进制的数据表示, 如0x8049324, 那为什么需要用十六进制表示呢? 十六进制的意义何在?   编程中,我们常用的还是10进制.毕竟C/C++是高级语言。 比如:int a = 100,b = 99; ...
  • 十六进制二进制计算器十六进制二进制:进制:进制:转换说明:上面第一行可将十六进制转换为二进制,第二行可以将任意进制转换为任意进制。64个基数为:"[emailprotected]"注意:本工具只是各种进制计数法的数...
  • 十六进制是计算机中数据的一种表示方法,与十进制的对应关系是:十六进制的0~9对应十进制数值0-9,A~F对应十进制数值10-15。 现在你编写一个程序,完成一个十六进制数到二进制表示的转换。 Input 输入有多行,至...
  • 十进制,二进制,八进制,十六进制的解意详细转换 十进制 二进制 八进制 十六进制 十进制转换成二进制 十进制转换成八进制进制 十进制转换成十六进制 二进制进制转换成十进制 二进制转换成八进制进制 二进制转换成...
  • 80可以分为64+16,那么二进制数轴上6416上面是1,其余位补0 计算器验证: 再以70为例: 同样的,十进制转十六进制也是一样的道理。 二.十六进制二进制之间的快速转换 十六进制二进制之间存在特.
  • 问题描述:  1.将二进制转换为十六进制。  例如:100111010010110 =... 利用二进制十六进制之间的特殊关系进行转换,即一位十六进制的数可由四位二进制数表示。  十六进制的每位数分别由 '0','1','2','3',...
  • 十六进制和二进制的对应关系表 麻烦请解答 十六进制0 1 2 3 4 5 6 7 8 9 A B C D E F 相对应的二进制表达方式。谢谢, 我来答 分享 举报 4个回答 #活动#情感答主招募令来啦! 奋进中的小李 推荐于2019-08-...
  • P20-4.3十进制表示 推理出一种新的计算机方式 观察思考 1表示有,0表示无 P21 4.4-十进制快速转换成二进制 一个数字除以2只可能产生0或者1的余数 ...P25-4.8-十六进制和二进制之间快速互相转换(重要) 9
  • 基本上所有的换算都要用到他们的对应关系,如下图:1、二进制转换成十六进制二进制转换成十六进制,主要方法就是用上面的关系对照表,四位二进制对应一个十六进制的数来换算。以小数点位分界线,向左(或向右),每四...
  • 十六进制、八进制、二进制与十进制的关系 1、二进制与十进制关系 二进制以0b开头,后跟0–1 先记住这个规则:0b0000中四个0从左往右分别对应的是8421 例子: 二进制数0b0010对应的十进制数是2,为什么呢? 因为在1的...
  • 十进制转换成二进制和十六进制的方法 十进制数转换成二进制数-般分为两个步骤,即整数部分的转换小数部分的转换。 (1 )整数部分的转换 *除2取余法:*这种方法是由于D10=N2 =dn-1x2n-1十dn-2x2n-2 +… d1x21十d0x20,...
  • 二进制转换为十六进制数是Prerequisite: Number systems 先决条件: 数字系统 Converting binary numbers into hexadecimal numbers is similar to the conversion of binary into octal, it just requires some ...
  • 十六进制二进制方法汇总

    千次阅读 2019-04-09 18:55:23
    一、四位法 以小数点为起始点,将二进制数值每4位划开,并将16进制中的元素分别替换为4位的二进制 ...16进制元素与二进制的对应关系 16进制元素 0 1 2 3 4 5 6 7 二进制 000...
  • 二进制十六进制 十六进制二进制 ©本文由博主原创,未经允许,不得转载相关博文内容 介绍 我相信很多大学计算机专业的学生还依然不懂它们之间的区别以及转换关系,作为大学生的你和我相比差不了多少...
  • 目录十进制、二进制、八进制、十六进制对应表二进制转十进制8421码十进制之间的对应关系十进制转二进制二进制、十进制互相转换(小数) 十进制、二进制、八进制、十六进制对应表 十进制 二进制 八进制 十六...
  • 文章目录1.计算机为什么采用二进制?...因为二进制是在电路中最好控制的,只有10两种状态.代表接通关闭电路的状态 2.为什么引入字节? 1字节(byte,字节)= 8 bit 字节(Byte /bait/ n. [C])是计...
  • 十六进制换算成二进制、八进制、十进制一、介绍:二、十六进制二进制计算十六进制数转二进制数的方法:计算十六进制数2BF7转成二进制数:三、十六进制转十进制计算十六进制数转十进制数的方法:计算十六进制数2BF7...
  • 今天在研究生复试面试的过程中被问到小数的二进制和十六进制形式怎么表示,然而这个知识点已经记不得了,只能尴尬的老师说这个知识点没有掌握好,回去会继续学习。不过最后的成绩还不错,复试第三,回去查了下小数...
  • 借助同样的思想,计算机中有二进制、八进制、十六进制之说,接下来详细讲解进制加减法及不同进制之间转换。 一、二进制、八进制、十六进制 1.二进制 只用0、1两个数字来表示数值,这就是二进制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,461
精华内容 29,384
关键字:

十六进制和二进制的关系