精华内容
下载资源
问答
  • 十六进制与八进制对应二进制的规律 问题:     在学编程语言时,基本每种编程语言都会提供hex()转换为16进制的函数,和oct()转换为8进制的函数。学过C#,java,Python,几乎每种语言都...

    十六进制与八进制对应二进制的规律。

    • 问题:
          在学编程语言时,基本每一种编程语言都会提供hex()转换为16进制的函数,和oct()转换为8进制的函数。学过C#,java,Python,几乎每一种语言都约定束城的将10进制作为默认进制,而对8进制和16进制做了单独的函数封装。如果需要转成其他进制会有一个公用的函数提供。每次都很好奇为啥要单独提供。今天终于明白了。
    • 计算机是二进制的。
    • 二进制特点:【8,4,2,1】原理(每个在自己位上单独二进制数对应的十进制数)。4位的二进制数满位转换成十进制为:8+4+2+1=15
    • 十进制:作为默认使用进制,适应社会。设计合理
    • 十六进制:比如说0xFF 表示为二进制为:0b11111111。
      • 注意:一位的最大十六进制数为F,等价于十进制的15,等价于二进制数的0b1111刚好是由4位二进制数的最大值组成。
      • 规律:十六进制转二进制,只需要将十六进制每位的数转成对应的二进制数链接起来就是对应的二进制数:例如:0xFF 等价于0b11111111。刚好是一个满8位的二进制数。同理,如果二进制数转成十六进制,只需要将二进制从最小位开始每4位转成一个对应的十六进制数链接起来就是对应的十六进制,例如:0b10110011 等价于0xb3。
      • ipv6地址就是十六进制表示
    • 八进制:根据上面16进制类似,是由3位满位的二进制数刚好等于一位满位的八进制数。例如:0o7 等价于0b111。
      • linux权限就是8进制表示。

    总结

    • 一位的十六进制满位,刚好等价于4位的二进制满位
    • 一位的八进制满位,刚好等价于3位的二进制满位
    • 一位的4进制满位,刚好等价于2位的二进制满位

    应用

        上面我们可以发现,用16进制转二进制,加上【8,4,2,1】原理,几乎口算都能算出任何一个十六进制的数对应的二进制数。更加方便理解二进制。而刚好计算机每个字节是8位的二进制数,所有一个字节只需要用一个2位的二进制数去表示。这样也有利于对字节的理解。 在IPV4地址中,也是使用的16进制数表示。可以说16进制非常友好的支持了我们对二进制数的理解。所有使用也比较频繁。这样一般编程语言就单独为16进制的数转换提供了单独的函数。至于8进制为啥要单独提供。目前还没有更好的理解。

    展开全文
  • 、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个字节。

    展开全文
  • 3.为什么个字节是8位二进制,而不是其他数目?4.为什么引入八进制、十六进制?(1)二进制转换?(2)十六进制转换? 1.计算机为什么采用二进制? 因为二进制是在电路中最好控制的,只有1和0两种状态.代表接通和...

    1.计算机为什么采用二进制?

    最初的时候,计算机是由二极管发展而来的。每个二极管能表达二种信号,就是接通电路或关闭电路两种状态(1 & 0)如果有2个二极管,就可以根据顺序,表达出4种状态(00 & 01 & 10 & 11), 那么如果有N个二极管,那就可以表达出二的N次方(2ⁿ)个状态。根据这种理论,就可以保存的信息就很多。最终需要做的就是,00代表啥,01代表啥,11代表啥,定义好之后,所有的组合到一起,就成了语句或十进制数字了。

    2.比特位(bit)与字节(Byte)的关系?

    1.比特位(bit)的引入?

    上面讲到二进制的引入,为了表达每一个二极管(比特位)的信息,把这个最小的信息单元叫比特位。每个比特位存放0或1。

    2.字节(Byte)的引入?

    1字节(byte,字节)= 8 bit

    • 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。
    • 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。
    • 八位二进制数最小为00000000,最大为11111111;
    • 通常1个字节可以存入一个ASCII码(128个字符),2个字节可以存放一个汉字国标码。

    字节 --百度百科

    个人理解是:

    • 如果一篇英文文章没有把单词、标点、段落等分开,会非常不便于阅读,例如helloworldmynameisalien,这个你根本不知道啥意思,但是hello world, my name is alien ,你就知道啥意思了。
    • 所以,计算机为了阅读二进制数,把一个字节(8位二进制)区分开来,当做一个单词或者字,然后再去阅读。
      10010110 00001111 10100000 类似这样的,计算机看做为3个字

    3.为什么一个字节是8位二进制,而不是其他数目?

    可以看一下ASCII的定义,应为早期的ASCII为了表达出所有需要表达的字母和一些特殊符号,发现8位二进制就能基本表达所有英文字母、特殊符号了。详情可参考如下链接,这样我们就可以把8位二进制当做一个字节,去代表一个计算机能识别的最小语言单位。

    ASCII码–百度百科

    3.二进制与八进制、十进制、十六进制之间的转换?

    1.八进制、十六进制的定义?

    八进制

    • 八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。
    • 八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。

    十六进制

    • 十六进制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。
    • 十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)
    • 内存中保存数据以及内存地址,都是十六进制

    2.二进制与八进制之间的转换?

    在这里插入图片描述

    3.二进制与十六进制之间的转换?

    在这里插入图片描述

    4.二进制与十进制之间的转换?

    十进制转化二进制的方法(除2倒序取余法):

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

    在这里插入图片描述

    十进制的小数转换成二进制(小数乘二正序取整法):

    小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转化后的结果。

    在这里插入图片描述

    如上这种方法保存小数,容易产生数据精度失真的情况。原始数据可能一摸一样,但最终保存到计算机中,内容是一样的。后面会提到单精度和双精度小数的问题。

    在这里插入图片描述

    通过如上的转换,我们发现无论计算机需要存储多少位二进制,例如10101010001110101101,我们都不用担心不方便阅读的问题,因为我们可以根据不同的进制去读取,虽然存储都是以二进制形式存储的。所以,最终计算机会根据实际的应用场景,会使用十六进制、八进制的格式去存储信息。

    5.二进制、八进制、十进制、十六进制对照表

    十进制 二进制 八进制 十六进制
    0 0 0 0
    1 1 1 1
    2 10 2 2
    3 11 3 3
    4 100 4 4
    5 101 5 5
    6 110 6 6
    7 111 7 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 A
    11 1011 13 B
    12 1100 14 C
    13 1101 15 D
    14 1110 16 E
    15 1111 17 F
    16 10000 20 10

    4.内存中为什么使用十六进制?

    • 前面提到,我们把八个比特位当做一个字节,字节又是计算机存储信息的最小单位。如果想充分利用比特位的信息,每个比特位都完全利用上,就能充分利用每个比特位上的存储空间。(重要, 重要,重要!!!!)

    • ASCII码–百度百科 里面,总共存储了128个字符,占用的是一个字节。但其实,一个字节可以有2的8次方(2^8=256)可能,也就是说,ASCII其实还是可以拓展信息的,有一半空间没有充分利用。

    • 十六进制(0–9, A、B、C、D、E、F)共计十六个数,可以理解为(2^4)个信息。

    • 而一个字节是(2^8)个信息, 那么一个字节正好可以保存2个十六进制数据,且完全利用上所有比特位。

    十进制(0–9)共计10个数,需要使用4个比特位才能存储下来,但4个比特位其实可以以存储16个数据信息的,只存储了10个数据,则存储空间就浪费了很多,而且检索数据的时候,空的地址符还需要再去检索,也是浪费时间。
    同理,八进制(2^3)占用3个比特位,一个字节8个比特位,只能保存2个八进制,且有2个比特位没使用,这样也没有充分利用空间。

    在这里插入图片描述

    内存中,一个字节的十六进制数据可以对应二进制是4个字节,所以内存中,存储数据的空间利用率非常高效。

    参考文档:
    https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
    https://www.jianshu.com/p/919a9019e6ac

    展开全文
  • 十六进制 二进制 Symbol 十进制 十六进制 二进制 Symbol 0 00 0000 0000 NUL 64 40 0100 0000 @ 1 01 0000 0001 SOH 65 41 0100 0001 A 2 ...

     

    十进制 十六进制 二进制 Symbol 十进制 十六进制 二进制 Symbol
    0 00 0000 0000 NUL 64 40 0100 0000 @
    1 01 0000 0001 SOH 65 41 0100 0001 A
    2 02 0000 0010 STX 66 42 0100 0010 B
    3 03 0000 0011 ETX 67 43 0100 0011 C
    4 04 0000 0100 EOT 68 44 0100 0100 D
    5 05 0000 0101 ENQ 69 45 0100 0101 E
    6 06 0000 0110 ACK 70 46 0100 0110 F
    7 07 0000 0111 BEL 71 47 0100 0111 G
    8 08 0000 1000 BS 72 48 0100 1000 H
    9 09 0000 1001 TAB 73 49 0100 1001 I
    10 0A 0000 1010 LF 74 4A 0100 1010 J
    11 0B 0000 1011 VT 75 4B 0100 1011 K
    12 0C 0000 1100 FF 76 4C 0100 1100 L
    13 0D 0000 1101 CR 77 4D 0100 1101 M
    14 0E 0000 1110 SO 78 4E 0100 1110 N
    15 0F 0000 1111 Sl 79 4F 0100 1111 O
    16 10 0001 0000 DLE 80 50 0101 0000 P
    17 11 0001 0001 DC1 81 51 0101 0001 Q
    18 12 0001 0010 DC2 82 52 0101 0010 R
    19 13 0001 0011 DC3 83 53 0101 0011 S
    20 14 0001 0100 DC4 84 54 0101 0100 T
    21 15 0001 0101 NAK 85 55 0101 0101 U
    22 16 0001 0110 SYN 86 56 0101 0110 V
    23 17 0001 0111 ETB 87 57 0101 0111 W
    24 18 0001 1000 CAN 88 58 0101 1000 X
    25 19 0001 1001 EM 89 59 0101 1001 Y
    26 1A 0001 1010 SUB 90 5A 0101 1010 Z
    27 1B 0001 1011 ESC 91 5B 0101 1011 [
    28 1C 0001 1100 FS 92 5C 0101 1100 /
    29 1D 0001 1101 GS 93 5D 0101 1101 ]
    30 1E 0001 1110 RS 94 5E 0101 1110 ^
    31 1F 0001 1111 US 95 5F 0101 1111 _
    32 20 0010 0000 (space) 96 60 0110 0000 `
    33 21 0010 0001 ! 97 61 0110 0001 a
    34 22 0010 0010 " 98 62 0110 0010 b
    35 23 0010 0011 # 99 63 0110 0011 c
    36 24 0010 0100 $ 100 64 0110 0100 d
    37 25 0010 0101 % 101 65 0110 0101 e
    38 26 0010 0110 & 102 66 0110 0110 f
    39 27 0010 0111 ` 103 67 0110 0111 g
    40 28 0010 1000 ( 104 68 0110 1000 h
    41 29 0010 1001 ) 105 69 0110 1001 i
    42 2A 0010 1010 * 106 6A 0110 1010 j
    43 2B 0010 1011 + 107 6B 0110 1011 k
    44 2C 0010 1100 , 108 6C 0110 1100 l
    45 2D 0010 1101 - 109 6D 0110 1101 m
    46 2E 0010 1110 . 110 6E 0110 1110 n
    47 2F 0010 1111 / 111 6F 0110 1111 o
    48 30 0011 0000 0 112 70 0111 0000 p
    49 31 0011 0001 1 113 71 0111 0001 q
    50 32 0011 0010 2 114 72 0111 0010 r
    51 33 0011 0011 3 115 73 0111 0011 s
    52 34 0011 0100 4 116 74 0111 0100 t
    53 35 0011 0101 5 117 75 0111 0101 u
    54 36 0011 0110 6 118 76 0111 0110 v
    55 37 0011 0111 7 119 77 0111 0111 w
    56 38 0011 1000 8 120 78 0111 1000 x
    57 39 0011 1001 9 121 79 0111 1001 y
    58 3A 0011 1010 : 122 7A 0111 1010 z
    59 3B 0011 1011 ; 123 7B 0111 1011 {
    60 3C 0011 1100 < 124 7C 0111 1100 |
    61 3D 0011 1101 = 125 7D 0111 1101 }
    62 3E 0011 1110 > 126 7E 0111 1110 ~
    63 3F 0011 1111 ? 127 7F 0111 1111  
    展开全文
  • 众所周知, 内存地址空间是用16进制的数据表示, 如0x8049324, 那为什么需要用十六进制表示呢? 十六进制的意义何在?   编程中,我们常用的还是10进制.毕竟C/C++是高级语言。 比如:int a = 100,b = 99; ...
  • 目录十进制、二进制、八进制、十六进制对应二进制转十进制8421码和十进制之间的对应关系十进制转二进制二进制、十进制互相转换(小数) 十进制、二进制、八进制、十六进制对应表 十进制 二进制 八进制 十六...
  • 二进制、八进制、十进制、十六进制关系及转换

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

    千次阅读 2019-04-09 18:55:23
    、四法 以小数点为起始点,将二进制数值每4划开,并将16进制中的元素分别替换为4二进制 ...16进制元素与二进制对应关系 16进制元素 0 1 2 3 4 5 6 7 二进制 000...
  • 参考表 251对应的进制转换: 进制 各个进制对应数 ...思考:首先int型为整型,4个字节,每个字节为8位二进制位。所以251的完整写法为00000000000000000000000011111011(一共32位),只不过高位零去掉
  • 在开发,调试过程中,大量阅读芯片手册,查看MCU寄存器,内存等都会涉及到十六进制二进制等的快速切换,以理解各个bit含义和内容。另外C代码中也经常用到位操作。 本文面向的读者是希望通过学习能够掌握二进制...
  • a = int(input("请输入个十进制整数:")) print("其对应二进制为{:b}\n八进制为{:o}\n十六进制为{:x}".format(a,a,a))
  • 制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进...
  • 逻辑运算,属性设置按逻辑运算在高...有一点要注意就是,所有按运算都是二进制位的按运算,如果数据采用十进制或者十六进制表示,实际上也是采用二进制的按运算。按与: & 0&0=0; 1&0=0; 0&1=0; 1&1=1
  • 首先来篇好文:C语言中的二进制数、八进制数和十六进制数 C语言中的整数除了可以使用十进制,还可以使用二进制、八进制和十六进制二进制数、八进制数和十六进制数的表示 个数字默认就是十进制的,表示个十...
  • 字节、十六进制二进制
  • 3、二进制十六进制 4、十进制和八进制或者十六进制 5、八进制和十六进制 三、总结 、概念 二进制为计算机存储的数字类型。即:逢2进1。0和1 十进制是通用的数字形式。即:逢10进1。0到9 八进制是种...
  • 在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这种在计算机中常用的数制来介绍一下.1.十进制数我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意...
  • 十六进制数可以很容易地转换为二进制数,反之亦然。 十六进制系统中的数字是0到9以及A,B,C,D,E,F。 十六进制系统中的每个数字都可以使用4个二进制数字表示。 数字的顺序以2的幂递增。我们将详细了解十六进制,...
  • 我们在课本的学习中,几乎用到的都是数制,像二进制、八进制、十进制、十六进制都是数制。 举个例子二进制 10010 我们知道它表示的数值大小是 18。(十进制下) 码制:表示事物的规则 码制就是用数字来表示具体...
  • 用汇编实现二进制数向十六进制数的转换 、实现功能 1)实现二进制数向十六进制数的转换 2)实现十六进制数向二进制数的转换‘ 二、设计分析       汇编语言中,字符在机器中都是以ascii码的二进制...
  • 首先我们常用的进制就有二进制、八进制、十进制、十六进制,他们之间主要的区别在于运算时逢一位,比如二进制是逢二进一位,八进制是逢八进一位。。。 二进制主要是适用于计算机,1和0是代表开和关两种状态,就...
  • 对于刚开始学习C语言的来说,我们知道%d可以表示十进制的数,%o可以表示八进制的数,%x用来表示十六进制的数,但却没有来表示二进制数的。 这就是相对应的八进制数和十六进制数#include &lt;stdio.h&gt; ...
  • 3、十六进制写法: 0x123 $n3 = 0x123; 先学习个单词: dec: 十进制 bin:二进制 oct:八进制 hex:十六进制 1、十进制转二进制decbin(),除2取余倒着写 例:$v1 = decbin(123); //注意:参数必须是10...
  •  接下来n行,每行个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式  输出n行,每行为输入对应的八进制正整数。  【注意】  输入的十六进制数不会...
  • 十六进制转八进制

    2021-01-31 14:35:13
    接下来n行,每行个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,...
  • 计算机只能识别二进制,这是众所周知的。但除了二进制,还有别的进制,它们之间是怎样转换的呢...0.二与八转换:二进制中的一位对应八进制的三位,即八进制中的每一位我们用二进制数来表示,不够三位,用0补全三位 ...
  • 计算机数制详解及相互转换(二进制、八进制、十进制、十六进制)前言、计算机中常用的数制1、二进制2、八进制3、十进制4、十六进制二、数制转换1、十进制转二进制2、二进制转十进制3、二进制转八进制4、二进制转...
  • 1.说明 在Java中整数有四种表示方式, 分别为十进制,二进制,...4位二进制数组成1位十六进制数, 所以二进制,八进制,十六进制互相转换很方便。 2.四种方式表示整数 十进制(Decimal):0-9 , 满10进1。 二进制(B...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,864
精华内容 21,145
关键字:

一位十六进制对应几位二进制