精华内容
下载资源
问答
  • 十六进制转换二进制
    千次阅读
    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

    更多相关内容
  • //十进制转十六进制字符串 Console.WriteLine(Convert.ToString(d,16)); //输出: a //二进制字符串转十进制数 string bin = "1010"; Console.WriteLine(Convert.ToInt32(bin,2)); //输出: 10 //
  • 二进制、十进制、十六进制、C51十六进制转换器,还有ASCII代码表,单个字符转换。
  • 为什么要单独写个方法去做不同进制之间的转换呢?因为自带的方法在进行十六进制转为二进制的时候,精度在13位字符后就会出现丢失,为了让精度不丢失就自己根据16进制转换2进制的原理写了两个... 十六进制转换二进制...

           为什么要单独写个方法去做不同进制之间的转换呢?因为自带的方法在进行十六进制转为二进制的时候,精度在13位字符后就会出现丢失,为了让精度不丢失就自己根据16进制转换2进制的原理写了两个方法

        如果长度没有超过13位,可以用parseInt("125adf8",16).toString(2)='1001001011010110111111000',

       十六进制转换二进制  (本次转换的方法没有考虑带小数点的情况)

    function hex_to_bin(str) {
                let hex_array = [{key:0,val:"0000"},{key:1,val:"0001"},{key:2,val:"0010"},{key:3,val:"0011"},{key:4,val:"0100"},{key:5,val:"0101"},{key:6,val:"0110"},{key:7,val:"0111"},
                    {key:8,val:"1000"},{key:9,val:"1001"},{key:'a',val:"1010"},{key:'b',val:"1011"},{key:'c',val:"1100"},{key:'d',val:"1101"},{key:'e',val:"1110"},{key:'f',val:"1111"}]
    
                let value=""
                for(let i=0;i<str.length;i++){
                    for(let j=0;j<hex_array.length;j++){
                        if(str.charAt(i).toLowerCase()== hex_array[j].key){
                            value = value.concat(hex_array[j].val)
                            break
                        }
                    }
                }
                console.log(value)
                return value
            }

    二进制转十六进制    (本次转换的方法没有考虑带小数点的情况)

    function bin_to_hex(str) {
                let hex_array = [{key:0,val:"0000"},{key:1,val:"0001"},{key:2,val:"0010"},{key:3,val:"0011"},{key:4,val:"0100"},{key:5,val:"0101"},{key:6,val:"0110"},{key:7,val:"0111"},
                    {key:8,val:"1000"},{key:9,val:"1001"},{key:'a',val:"1010"},{key:'b',val:"1011"},{key:'c',val:"1100"},{key:'d',val:"1101"},{key:'e',val:"1110"},{key:'f',val:"1111"}]
                let value = ''
                let list=[]
                console.log(str)
                if(str.length%4!==0){
                    let a = "0000"
                    let b=a.substring(0,4-str.length%4)
                    str = b.concat(str)
                }
                console.log(str)
                while (str.length > 4) {
                    list.push(str.substring(0, 4))
                    str = str.substring(4);
                }
                list.push(str)
                console.log(list)
                for(let i=0;i<list.length;i++){
                    for(let j=0;j<hex_array.length;j++){
                        if(list[i]==hex_array[j].val){
                            value = value.concat(hex_array[j].key)
                            break
                        }
                    }
                }
                console.log(value)
                return value
            }

    异或运算 (需要上面两个方法做基础)

    function xor(a ,b){
                let A = hex_to_bin(a)
                let B = hex_to_bin(b)
                console.log(a+"   a的二进制:"+A)
                console.log(b+"   b的二进制:"+B)
                let o = "00000000000000000000000000000000000"
                if(A.toString().length > B.toString().length){
                    let c = A.toString().length - B.toString().length
                    B = o.substr(0,c).concat(B)
                }else if(A.toString().length < B.toString().length){
                    let c = B.toString().length - A.toString().length
                    A = o.substr(0,c).concat(A)
                }
                console.log('B:'+B)
                console.log('A:'+A)
                let d = ""
                for(let i=0;i<A.toString().length;i++){
                    if(A.toString()[i]==B.toString()[i]){
                        let q="0"
                        d = d.concat(q)
                    }else{
                        let p="1"
                        d = d.concat(p)
                    }
                }
                console.log(bin_to_hex(d))
                return bin_to_hex(d)
            }

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/lixiwoaini/article/details/82179094

    展开全文
  • //输出 11010 decbin (PHP 3, PHP 4, PHP 5) decbin — 十进制转换二进制 说明 string decbin ( int number ) 返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其...
  • 主要介绍了使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换的一些用法,需要的朋友可以参考下
  • 需要电脑配置有Qt环境变量:(使用windeployqt + formatTest.exe进行打包后可不依赖环境)。 源码地址:https://blog.csdn.net/weixin_41493717/article/details/81380827#comments_17790746
  • 这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # 2/10/16 base trans. wrote by srcdog on 20th, April, 2009 # ld ...
  • 利用javascript编写任意、八、十、十六进制两两转换的进制转换器,思路:先将数字转为十进制,再由十进制转为其他进制。
  • labview十六进制二进制,输入字符串控件是十六进制显示!不是正常显示那种超级简单的转换
  • 十六进制转换器作者:Björn Carlsson 许可证:MIT 关于一个崇高的插件,将选定的数字转换为十进制或从十进制转换为二进制/八进制/十六进制它可以作为所选数字的就地替换来完成,或者可以在带有分隔符的数字之后添加...
  • 最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制二进制中间的转换。还包括了一个字节数组 与十六进制字符串的互相转换。估计遇到蓝牙通信的朋友,应该用的上。
  • C语言-顺序栈实现十进制转换二进制-八进制-十六进制
  • 进制转换二进制、八进制、十六进制 从十进制向其它进制转换,用的是就用该数字不断除以要转换的进制数,读取余数。连接一起就可以了。 复制代码 代码如下: <?php /** *十进制转二进制、八进制、十六进制 不足...
  • 十六进制二进制转换以及练习

    千次阅读 2021-06-04 16:01:01
    二进制表示法中,它的值域是0000000〜11111111;如果用十进制整数表示,它的值域就是0〜255)为单位取值,取值标识为地址(C语言指针为字节的虚拟地址,编译器将指针同类型联系在一起并对其维护) 十六进制表示...

    现代计算机存储和处理的信息以二值信号表示,二值信号能够很容易地被表示、存储和传输。

    虚拟存储器:被视为字节数组,按字节(一个字节由8位组成。在二进制表示法中,它的值域是0000000〜11111111;如果用十进制整数表示,它的值域就是0〜255)为单位取值,取值标识为地址(C语言指针为字节的虚拟地址,编译器将指针同类型联系在一起并对其维护

     

    十六进制表示:0x或ox开头,以16为基数,来表示位模式。十六进制(简写为“hex”)使用数字0〜9,以及字符A~F,来表示16个可能的值。

    十六进制与二进制之间的转换:

    example:数字0x173A4C展开为二进制

     

    example:二进制1111001010110110110011转换为16进制

     

    十六进制与十进制之间的转换:十进制和十六进制表示之间的转换需要使用乘法或者除法来处理一般情况。

    十进制数字x转换为十六进制,可以反复地用16除x

    example:314156转16进制,0xC2BC4

     

    十六进制数字转换为十进制数字, 16的幂乘以每个十六进制数字。

    example:给定数字0x7AF,我们计算它对应的十进制值

    无符号:一般二进制,表示≥0的数

    补码:表示有符号整数的最常见的方式,可表示正负

    浮点数:二进制下的科学计数法, 浮点数虽然可以编码一个较大的数值范围,但是这种表示只是近似的

    浮点运算:浮点运算有完全不同的数学属性。溢出会产生特殊的值。由于表示的精度有限,浮点运算是不可结合的。

    溢出:

    Perl语言脚本:

    十进制转十六进制

    十六进制转十进制

    A:0x39A7F8=0011 1001 1010 0111 1111 1000

    B:1100 1001 0111 1011=0xC97B

    C:0xD5E4C=1101 0101 1110 0100 1100

    D:10 0110 1110 0111 1011 0101=0x26E7B5

    答案:

    9

    512

    0x200

    19

    524288

    0x80000

    14

    16384

    0x4000

    16

    65536

    0x10000

    17

    131072

    0x20000

    5

    32

    0x20

    7

    128

    0x80

    0

    0000 0000

    0x00

    167

    1010 0111

    0xA7

    62

    0011 0111

    0x3E

    188

    1011 1100

    0xBC

    55

    0011 0111

    0x37

    136

    1000 1000

    0x88

    82

    0101 0010

    0x52

    172

    1010 1100

    0xAC

    231

    1110 0111

    0xE7

     

    A:0x5044

    B:0x4FFC

    C:64=0x40  0x40+0x503C=0x507C

    D:0xAE

    展开全文
  • NULL 博文链接:https://jacky-dai.iteye.com/blog/870473
  • 个人原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换、加、减、乘、除、取余、与、或、非等计算,支持GB2312Z...
  • 本表格适合单片机编程人员使用,可以自由的从2进制转换成16进制,从16进制转换成2进制
  • cnvrtr ASCII,十六进制二进制,十进制,Base64转换器(基于rapidtables.com)
  • 用于破解或者逆向修改时的十六进制转换判断辅助,只是其中的一种模式,只是软件,非源码。只是可以参考这种转换方式。是VB编写的
  • 本文实例讲述了PHP实现十进制、二进制、八进制和十六进制转换相关函数用法。分享给大家供大家参考,具体如下: 1.二进制: 1.1.二进制转十进制: 函数:bindec(string $binary_string) @param $binary_string 参数...
  • 十六进制二进制代码文件相互转换工具,Windows标准窗口,不似其它类似工具只工作在命令行模式下。可相互转换的格式有Intel HEX格式, Motorola S19格式,二进制BIN格式。有代码查看窗口,可直接查看代码。
  • VB进制转换程序,可进行以下四种进制相互转换:二进制、四进制、十六进制、十进制,界面简洁,操作方便,示例演示截图如图所示。
  • 二进制十进制八进制十六进制转换练习题[借鉴].pdf
  • 二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是 N 进制,那么: 对于整数部分,从右往左看,第 i 位的...

    上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是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 转换成八进制的过程:


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

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


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

    2) 小数部分

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

    • 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
    • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
    • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;
    • ……
    • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。


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

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


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

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


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

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

    • 十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345;
    • 十进制数字 42.6875 转换成二进制的结果为 101010.1011。


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

    十进制012345678910111213141516
    二进制0110111001011101111000100110101011110011011110111110000
    八进制01234567101112131415161720
    十六进制0123456789ABCDEF10


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

    • 十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;
    • 十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;
    • 十进制 0.625 对应的二进制为 0.101,是一个有限小数。

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

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

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

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


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

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


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

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

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


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

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


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

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

    总结

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

    展开全文
  • c语言中十六进制转为二进制

    千次阅读 2021-05-19 19:26:46
    本文概述什么是十六进制十六进制是一种位置系统,以16为基数表示十六个不同的符号中的数字。这些不同的符号,即“ 0-9”代表从零到九的值,...十六进制数= A12C相当于A的二进制值是1010等于1的二进制值是0001等于...
  • 1.1 十进制转换二进制,分为整数部分和小数部分 【1】整数部分 方法:采用"除2取余,逆序排列"法 即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续...
  • 十六进制的文本文件,转为十六进制格式的二进制文件。 从第一个有效字符开始,每2个有效字符(即0~F)输出一个格式化字节,"0x"、"\r\n"、空格等字符会被跳过。
  • 个人原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,支持取位、移位、大小端转换、加、减、乘、除、取余、与、或、非计算,支持Unicode、ANSI、UTF-8编码相互转换,支持MD5-32/MD5-16、CRC32/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 195,592
精华内容 78,236
关键字:

十六进制转换二进制