-
2021-01-29 14:20:28
python - 将十六进制转换为二进制
我有ABC123EFFF。
我想拥有001010101111000001001000111110111111111111(即二进制代表,例如42位数和前导零)。
怎么样?
18个解决方案
92 votes
为了解决左侧尾随零问题:
my_hexdata = "1a"
scale = 16 ## equals to hexadecimal
num_of_bits = 8
bin(int(my_hexdata, scale))[2:].zfill(num_of_bits)
它将给出00011010而不是修剪版本。
Onedinkenedi answered 2019-09-14T20:22:09Z
52 votes
import binascii
binary_string = binascii.unhexlify(hex_string)
读
binascii.unhexlify
返回由指定为参数的十六进制字符串表示的二进制数据。
rahul answered 2019-09-14T20:22:45Z
40 votes
bin(int("abc123efff", 16))[2:]
Glenn Maynard answered 2019-09-14T20:23:02Z
29 votes
>>> bin( 0xABC123EFFF )
'0b1010101111000001001000111110111111111111'
Simple answered 2019-09-14T20:23:26Z
24 v
更多相关内容 -
十六进制与八进制对应二进制的规律
2019-04-26 20:33:42十六进制与八进制对应二进制的规律 问题: 在学编程语言时,基本每一种编程语言都会提供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进制为啥要单独提供。目前还没有更好的理解。
- 问题:
-
Python练习题:十进制转十六进制(选自蓝桥杯)
2021-01-20 03:32:12十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。 十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十... -
0x十六进制和0八进制 十六进制和字节 位 二进制的关系
2021-03-17 16:04:43一、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);//显示数制前缀
参考链接
二、十六进制和字节 位 二进制的关系
1字节 = 2个十六进制数位 = 8个二进制数位
因此,1个16进制数对应4个二进制数位,2个16进制数位对应8个二进制数位,及1个字节。
-
计算机基础;十进制数100对应的二进制数、八进制数和十六进制数分别是
2021-07-21 02:05:34在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下.1.十进制数我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意...中计数采用了多种记数制,比如:十进制,六十进制(六十秒为一分,六十分为一小时,即基数为60,运算规则是逢六十进一),…….在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下.
1.十进制数
我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意组合构成,其特点是逢十进一.
任何一个十进制数均可拆分成由各位数字与其对应的权的乘积的总和.例如:
?
?
?
这里的10为基数,各位数对应的权是以10为基数的整数次幂.为了和其它的数制区别开来,我们在十进制数的外面加括号,且在其右下方加注10.
2.二进制数
在计算机中,由于其物理特性(只有两种状态:有电、无电)的原因,所以在计算机的物理设备中获取、存储、传递、加工信息时只能采用二进制数.二进制数是由两个数字0、1任意组合构成的,其特点是逢二进一.例如:1001,这里不读一千零一,而是读作:一零零一或幺零零幺.为了与其它的数制的数区别开来,我们在二进制数的外面加括号,且在其右下方加注2,或者在其后标B.
任何一个二进制数亦可拆分成由各位数字与其对应的权的乘积的总和.其整数部分的权由低向高依次是:1、2、4、8、16、32、64、128、……,其小数部分的权由高向低依次是:0.5、0.25、0.125、0.0625、…….
二进制数也有其运算规则:
加法:0+0=0?0+1=1?1+0=1?1+1=10
乘法:0×0=0?0×1=0?1×0=0?1×1=1
二进制数与十进制数如何转换:
(1) 二进制数—→十进制数
对于较小的二进制数:
对于较大的二进制数:
方法1:各位上的数乘权求和?例如:
(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45
(1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125
方法2:任何一个二进制数可转化成若干个100…0?的数相加的总和?例如:
(101101)2=(100000)2+(1000)2+(100)2+(1)2
而这种100…00形式的二进制数与十进制数有如下关联:1后有n个0,则这个二进数所对应的十进制数为2n.
所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45
(2)十进制数—→二进制数
整数部分:整除以2取余法.例如:75
75/2=37…1?37/2=18…1?18/2=9…0?9/2=4…1?4/2=2…0?2/2=1…0?1/2=0…1
将得到的一系列的余数倒过来书写就得到该数所对应的二进制数(1001011)2
小数部分:乘以2取整法.例如:0.7
0.7×2=1.4…1?0.4×2=0.8…0?0.8×2=1.6…1?0.6×2=1.2…1?0.2×2=0.4…0
3.八进制数
八进制数是由0、1、2、3、4、5、6、7、8任意组合构成的,其特点是逢八进一.为了与其它的数制的数区别开来,我们在八进制数的外面加括号,且在其右下方加注8,或者在其后标Q.
八进制数的基数是8,任何一个八进制数亦可拆分成由各位数字与其对应的权的乘积的总和.其整数部分的权由低向高依次是:1、8、82、83、84、85、……,其小数部分的权由高向低依次是:8-1、8-2、8-3、8-4、…….
八进制数与其它数制的转换:
(1)与十进制数的互换
八进制数—→十进制数
十进制数—→八进制数
方法均与二进制数与十进制数互换的方法一样.
(2)与二进制数的互换
八进制数—→二进制数
把八进制数的每一位改成等值的三位二进制数,即“一位变三位”.
例如:56.103Q
?5?6?.?1?0?3
? ↓?↓?↓?↓?↓?
? 101?110?001?000?011
所以(56.103)8=(101110.001000011)2
二进制数—→八进制数
把二进制数从小数点开始向两边每三位为一段(不足补0),每段改成等值的一位八进制数即可,即“三位变一位”.
4.十六进制数
十六进制数是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F任意组合构成的,其特点是逢十六进一.为了与其它的数制的数区别开来,我们在十六进制数的外面加括号,且在其右下方加注16,或者在其后标H.
十六进制数的基数是16,任何一个十六进制数亦可拆分成由各位数字与其对应的权的乘积的总和.其整数部分的权由低向高依次是:1、16、162、163、164、165、……,其小数部分的权由高向低依次是:16-1、16-2、16-3、16-4、…….
十六进制数与其它数制的转换:
(1)与十进制数的互换
十六进制数—→十进制数
十进制数—→十六进制数
方法均与二进制数与十进制数互换的方法一样.
(2)与二进制数的互换
十六进制数—→二进制数
把十六进制数的每一位改成等值的四位二进制数,即“一位变四位”.
例如:(3AD.B8)16
?3?A?D.?B?8
? ↓?↓?↓?↓?↓?
? 0011?1010?1101?1011?1000
所以(3AD.B8)16=(1110101101.10111)2
二进制数—→十六进制数
把二进制数从小数点开始向两边每四位为一段(不足补0),每段改成等值的一位十六进制数即可,即“四位变一位”.
下表中列出了一些数的二、八、十和十六进制形式
二进制数 八进制数 十进制数 十六进制数 二进制数 八进制数 十进制数 十六进制数
0000 0 0 0 1001 11 9 9
0001 1 1 1 1010 12 10 A
0010 2 2 2 1011 13 11 B
0011 3 3 3 1100 14 12 C
0100 4 4 4 1101 15 13 D
0101 5 5 5 1110 16 14 E
0110 6 6 6 1111 17 15 F
0111 7 7 7 10000 20 16 10
1000 10 8 8 10001 21 17 11
? 二、计算机中数的表示
在计算机中所有的数据、指令以及一些符号等都是用特定的二进制代码表示的.
? 1.数值数据的表示
我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值.机器数有固定的位数,具体是多少位受到所用计算机的限制.机器数把其真值的符号数字化,通常是用规定的符号位(一般是最高位)取0或1来分别表示其值的正或负.例如:假设机器数为8位,则其最高位是符号位,那么在整数的表示情况下,对于00101110和10010011,其真值分别为十进制数+46和-19.
机器数常采用原码和补码的形式作为其编码方式.
(1)原码
整数X的原码是指:其符号位的0或1表示X的正或负,其数值部分就是X的绝对值的二进制表示.通常用[X]原表示X的原码.
例如:假设机器数的位数是8,那么:[+17]原=00010001?[-39]原=10100111
注意:由于[+0]原=00000000,[-0]原=10000000,所以数0的原码不唯一,有“正零”和“负零”之分.
(2)反码
在反码的表示中,正数的表示方法与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0).通常,用[X]反表示X的反码.
例如:[+45]反=[+45]原=00101101?[-32]原=10100000?[-32]反=11011111
(3)补码
在补码的表示中,正数的表示方法与原码相同;负数的补码在在其反码的最低有效位上加1.通常用[X]补表示X的补码.
例如:[+14]补=10100100?[-36]反=11011011?[-36]补=11011100
注意1:数0的补码的表示是唯一的,即[0]补=[+0]补=[-0]补=00000000
注意2:利用公式?[X]补+[±Y]补=[X±Y]补?可以把加法和减法统一成加法.(符号位和其它位上数一样运算,如果符号位上有进位,则把这个进位的1舍去不要,即不考虑“溢出”问题).
例如:?X=6,Y=2?求X-Y
?[X]补=00000110?[-Y]补=11111110
? [X-Y]补=00000100
另:机器数中采用定点或浮点数的方式来表示小数!(略)
? 2.ASCII码
计算机除了能处理数值外还能处理字符(指字母A、B、…、Z、a、b、…、z,数字0、1、…、9,其它一些可打印显示的符号如:+、-、*、/、、…).在计算机内部,这些符号也得用二进制代码来表示,目前,在国际上广泛采用的是美国标准信息交换代码(American?Standard?Code?for?Information?Interechang),简称ASCII码.
标准的ASCII码中共有128(27)个字符,所以标准的ASCII码采用7位二进制编码.因为其中的字符排列是有序的,其对应的ASCII码也是相连的,所以我们只需要记几个关键字符的ASCII码,其它可以推算.
‘0’——48?‘A’——65?‘a’——97
注:标准的ASCII码能表示的字符较少,于是在其基础上又设计了一种扩
解析看不懂?求助智能家教解答查看解答
-
二进制/十进制/十六进制 相互转换关系
2022-01-21 10:10:00例如:9(第十个数字) 因为再多一个数字就是满十进一了 ,所以9进1等于0,前面的一位数字0再进一就是1。所以“ 9 ”再往后就是“ 10 ”来表示。 二进制:计算机系统中通常用二进制系统。 进位规则:逢二进一 0... -
C语言二进制数、位、字节、八进制十六进制
2022-02-23 21:14:04一、二进制数、位和字节 1、二进制数 以为基地表示的数字称为二进制数。二进制中的2和十进制中的10作用相同。二进制数1101可表示为: 1*23+1*22+0*21+1*20 以十进制数表示 1*8+1*4+0*2+1*1 = 13 二进制系统可以把... -
Qt进制之间的转换(十进制、二进制、八进制、十六进制)
2020-12-23 19:54:56本文通过以下几个部分加以介绍: 1. 初始化 2. 访问与赋值 3. 添加、删除、插入与替换操作 4. 查找与比较 5. 数据转换与处理 1 初始化 2 访问与赋值 访问QByteArray主要有4中方式,分别为[]、at()、data[]和... -
Java二、八、十、十六进制介绍
2021-02-13 01:50:44二进制是在计算机中使用最多的进制,八进制和十六进制都是基于二进制的,3位二进制数组成1位八进制数,4位二进制数组成1位十六进制数,所以二进制,八进制,十六进制互相转换很方便。2.四种方式表示整数十进制... -
C语言——十进制转为二进制、八进制、十六进制的函数转换
2021-05-20 10:27:28/**** Copyright(C) 2011, SKYCNC* All rights reserved** 程序名称:dec_to_bin_oct_hex* 功 能:输入一个十进制数,将其转化为二进制、八进制、十六进制** 作 者:zhanghbboy* 完成日期:11.07.27****/#include#... -
二进制、十进制、十六进制详细说明
2021-07-14 10:07:00我们在课本的学习中,几乎用到的都是数制,像二进制、八进制、十进制、十六进制都是数制。 举个例子二进制 10010 我们知道它表示的数值大小是 18。(十进制下) 码制:表示事物的规则 码制就是用数字来表示具体... -
二进制、八进制、十六进制的相互转换
2021-07-17 10:14:48二进制的定义: 二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”(至于为什么只有零和一两种情况,电路只有开合关的两种情况,如果是量子计算机,存在一种... -
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细
2020-08-05 22:48:22今天来总结一下各种进制转换问题,详细齐全易于理解,希望对你有帮助哦! 先从我们最熟悉的十进制入手吧,其他进制与十进制的转换方法都是一样的,保证能全部记住!...一、十进制转换成二进制、八进制、十六进制 -
C语言中的二进制数、八进制数和十六进制数
2021-05-22 05:22:24二进制数、八进制数和十六进制数的表示一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊... -
计算机进制之二进制、十进制、十六进制之间的转换
2021-07-17 00:15:32释放双眼,带上耳机,听听看~!1、计算机的数制介绍数制:计数的方法,指用一组固定的符号和统一的规则来...2、数制的表示方法3、数制的计算4、进制之间的转换4.1、正整数的十进制转换二进制将一个十进制数除以二,... -
编程基础 进制的定义,二进制、十进制、十六进制的相互转换
2021-10-15 15:05:50进制的相互转换4.1 二进制与十进制的相互转化4.2 二进制与十六进制的相互转换4.3 十进制与十六进制的相互转换5. 人类为什么最习惯用十进制6. 计算机为什么用的是二进制小结 1. 进制的定义 首先我们需要先了解什么是... -
二进制八进制十进制十六进制及原码反码补码
2022-04-17 21:40:48表示某一位置上的数,运算时是逢X进一位。 十进制是逢十进一;二进制是逢二进一,八进制是逢八进一; 常见进制:二进制,八进制,十进制,十六进制; 学习进制的原因:计算机数据在底层运算时,都是以二进制形式... -
十六进制转二进制转八进制
2016-03-15 16:47:24存4位-取3位方法十六进制转二进制转八进制的思路最快的 最便于计算的 是 先转化成2进制,再转换成8进制: 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C ... -
二进制、八进制、十进制、十六进制关系及转换
2019-02-21 21:20:22二进制,八进制,十进制,十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社&amp... -
信息编码基础(二进制、十六进制)
2021-05-19 21:27:49通过二进制的 0 和 1 『画』图:这里设置的像素位数为1,也就是每1位数代表着一个颜色值,1表示黑色,0表示白色。 计算机二进制存储图片文件的原理: 图像文件存储的都是每一个像素对应的颜色值。 1、位图文件有... -
计算机中常用 二进制 八进制 十进制 十六进制的特点
2021-07-22 03:33:11计算机中常用的计数制用若干数位(由数码表示)...另外,还有二进制、八进制和十六进制等。在计算机的数制中,要掌握3个概念,即数码、基数和位权。下面简单地介绍这3个概念。数码:一个数制中表示基本数值大小的不同... -
二进制与八进制、十进制、十六进制之间的转换
2021-07-17 09:56:45首先我们常用的进制就有二进制、八进制、十进制、十六进制,他们之间主要的区别在于运算时逢几进一位,比如二进制是逢二进一位,八进制是逢八进一位。。。 二进制主要是适用于计算机,1和0是代表开和关两种状态,就... -
比特位与字节的关系,二进制、八进制、十六进制之间的转换,内存为什么使用十六进制?
2019-04-04 20:58:393.为什么一个字节是8位二进制,而不是其他数目?4.为什么引入八进制、十六进制?(1)二进制转换?(2)十六进制转换? 1.计算机为什么采用二进制? 因为二进制是在电路中最好控制的,只有1和0两种状态.代表接通和... -
用汇编实现二进制数和十六进制数的相互转换
2020-08-03 16:50:13用汇编实现二进制数向十六进制数的转换 一、实现功能 1)实现二进制数向十六进制数的转换 2)实现十六进制数向二进制数的转换‘ 二、设计分析 汇编语言中,字符在机器中都是以ascii码的二进制... -
二进制,八进制,十进制和十六进制基础和转换
2021-11-11 14:58:59进制也就是进位计数制,是人为定义的带进位的计数方法 对于任何一种进制---X进制,就表示每一位上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x... -
Python二进制、八进制、十六进制数字的表示和转换
2020-11-20 20:00:01除了常用的十进制表示法,Python 也支持二进制、八进制和十六进制表示法。这些只是表示方法不同,但是它们表示的含义是一样的,如二进制中的 11 和十进制数中的 3 是一样的。1. Python 二进制表示法如十进制中的 100... -
数值转换二进制、八进制、十进制、十六进制
2022-01-05 14:43:214、位权:指在某种进位计数制中,数位所代表的大小,即处在某一位上的“1”所表示的数值的大小 对不同的数制,可以给数字加上括号,使用下标来表示该数字的数制(当没有下标时默认为十进制)如:(1010)2、123、(2A... -
字节、十六进制、二进制之间的关系
2020-06-10 09:59:21字节、十六进制、二进制 -
Java中的进制(二进制、八进制、十进制和十六进制)
2022-03-15 12:25:27Java中的进制(二进制、八进制、十进制和十六进制) -
二、八、十、十六进制转换(图解篇)
2017-11-14 21:49:06各种进制的用途 10进制,当然是便于我们人类来使用,我们从小的习惯就是使用十进制,这个毋庸置疑。 2进制,是供计算机使用的,1,0代表开和关,有和无,机器只...二进制、八进制、十进制、十六进制之间的转换 ht