精华内容
下载资源
问答
  • 注意:使用Integer的方法转换出来的2进制字符串 最高位是没有补零的 ,java的Integer类的toBinaryString()方法转换出来的二进制字符串只会保留最高非零位以后的字符串,不满int类型的32位,所以需要补零。...

    进制转换的坑:

    注意:使用Integer的方法转换出来的2进制字符串 最高位是没有补零的 ,java的Integer类的toBinaryString()方法转换出来的二进制字符串只会保留最高非零位以后的字符串,不满int类型的32位,所以需要补零。

    /** 
        * @Description: 将2进制补位32位
        * @Param: [binary] 
        * @return: java.lang.String 
        * @Author: Liang Shan 
        * @Date: 2019/9/24 0024 
        */ 
        public static String binaryToBinary32(String binary) {
            StringBuilder stringBuilder = new StringBuilder();
            if (binary.length() < 32) {
                for (int i = 0; i < 32 - binary.length();i++) {
                    stringBuilder.append("0");
                }
            }
            stringBuilder.append(binary);
            return stringBuilder.toString();
        }

     工具类:

    package com.lw.czy.util;
    
    /**
     * @program: ysczy
     * @description: 进制转换
     * @author: Liang Shan
     * @create: 2019-09-19 17:01
     **/
    public class ParseUtil {
    
        /**
        * @Description: 16进制字符串转10进制
        * @Param: [hex]
        * @return: java.lang.String
        * @Author: Liang Shan
        * @Date: 2019/9/24 0024
        */
        public static Integer hexStringToDecimal(String hex) {
            Integer result = Integer.valueOf(hex, 16);
            return result;
        }
    
        /**
         * @Description: 16进制字符串转2进制字符串
         * @Param: [hex]
         * @return: java.lang.String
         * @Author: Liang Shan
         * @Date: 2019/9/24 0024
         */
        public static String hexStringToBinaryString(String hex) {
            Integer temp = Integer.valueOf(hex, 16);
            String result = Integer.toBinaryString(temp);
            return result;
        }
    
        /** 
        * @Description: 10进制转16进制字符串 
        * @Param: [] 
        * @return: java.lang.String 
        * @Author: Liang Shan 
        * @Date: 2019/9/24 0024 
        */ 
        public static String decimalToHexString(Integer decimal) {
            String result = Integer.toHexString(decimal);
            return result;
        }
    
        /**
         * @Description: 10进制转2进制字符串
         * @Param: []
         * @return: java.lang.String
         * @Author: Liang Shan
         * @Date: 2019/9/24 0024
         */
        public static String decimalToBinaryString(Integer decimal) {
            String result = Integer.toBinaryString(decimal);
            return result;
        }
    
        /**
         * @Description: 2进制字符串转10进制
         * @Param: [hex]
         * @return: java.lang.String
         * @Author: Liang Shan 
         * @Date: 2019/9/24 0024 
         */
        public static Integer binaryStringToDecimal(String binary) {
            Integer result = Integer.valueOf(binary, 2);
            return result;
        }
    
        /**
         * @Description: 2进制字符串转16进制字符串
         * @Param: []
         * @return: java.lang.String
         * @Author: Liang Shan
         * @Date: 2019/9/24 0024
         */
        public static String binaryStringToHexString(String binary) {
            Integer temp = Integer.valueOf(binary, 2);
            String result = Integer.toHexString(temp);
            return result;
        }
    
        /**
         * @Description: byte[]转字符串
         * @Param: [bytes]
         * @return: java.lang.String
         * @Author: Liang Shan 
         * @Date: 2019/9/20 0020 
         */
        public static String byte2Hex(byte[] bytes) {
            StringBuffer stringBuffer = new StringBuffer();
            String temp = null;
            for (int i = 0; i < bytes.length; i++) {
                temp = Integer.toHexString(bytes[i] & 0xff);
                if (temp.length() == 1) {
                    // 得到的一位的进行补0操作
                    stringBuffer.append("0");
                }
                stringBuffer.append(temp);
            }
            return stringBuffer.toString();
        }
    
        /**
         * @Description: byte[]转String[]
         * @Param: [bytes]
         * @return: java.lang.String[]
         * @Author: Liang Shan 
         * @Date: 2019/9/20 0020 
         */
        public static String[] bytesToStrings(byte[] bytes) {
            String[] strings = new String[bytes.length];
            for (int i = 0; i < bytes.length; i++) {
                String temp = Integer.toHexString(bytes[i] & 0xff);
                if (temp.length() == 1) {
                    strings[i] = '0' + temp;
                } else {
                    strings[i] = temp;
                }
            }
            return strings;
        }
    }
    

     

    展开全文
  • 例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也就是ASCii码之外的字节值,或是字节值不是字母和数字的,是一些特殊符号),如物联网的MQTT协议的信息,以及我们自定义的二进制应用协议,而不是基于...

    https://www.xin3721.com/eschool/pythonxin3721/

    在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也就是ASCii码之外的字节值,或是字节值不是字母和数字的,是一些特殊符号),如物联网的MQTT协议的信息,以及我们自定义的二进制应用协议,而不是基于可见字符或JSON组装的信息流。但我们希望看到的是类似这样的信息“0A 53 49 B7 FC 2E”。

    这些二进制数据如果直接用print()函数打印,则在控制台看到的是以字节值代表的字符形式,看到的很多就是乱码。如果用Python里的hex()函数转一下再依次输出,会在每个前面都带有“0x”字符,并且01会打印成1,看起来就很不整齐,感觉比较乱,并且打印的时候要人为在每个字节后面加入空格才能分开字节。

    经过实践,我们可以通过格式化输出将字节值变成16进制字符后,再用join()函数输出,就可以实现我们要的效果了,想打印字符串的ASCii值也可以,只不过先用ord()函数转一下,下面是我封装的两个函数,分别对应字节类型和字符串类型的输出,调试通过,仅供参考。

    打印字节类型的:

    # 字节列表以16进制格式打印数据

    def print_bytes_hex(data):

    lin = ['%02X' % i for i in data]

    print(" ".join(lin))

    # 测试字节列表,这也是网络传输收到的原始类型

    arr = [0x4B, 0x43, 0x09, 0xA1, 0x01, 0x02, 0xAB, 0x4A, 0x43]

    print_bytes_hex(arr)

    '''

    控制台输出:

    4B 43 09 A1 01 02 AB 4A 43

    '''

    打印字符串类型的:

    # 字符串或字符列表以16进制格式打印数据

    def print_string_hex(data):

    lin = ['%02X' % ord(i) for i in data]

    print(" ".join(lin))

    # 测试字符串类型

    arr = 'Work'

    print_string_hex(arr)

    '''

    控制台输出:

    57 6F 72 6B

    '''

    如果我们是开发物联网的项目,涉及到信令需要与硬件开发人员交流的时候,硬件那边基本都是以16进制描述的,所以在服务端输出格式统一的数据流格式,方便大家交流。

    上面的实现也可以用循环打印(在打印的时候格式化和加空格)实现,但是写起来略显臃肿,但是不用生成新的列表,对瞬间内存占用有利(抱歉,写硬件代码留下的习惯,总是会想到内存占用,因为单片机的资源实在有限)大家可以根据这个自己改进。

    展开全文
  • 十进制转二进制 多举几个例子(先谢了。)十进制转二进制简单的来讲,就是把一个十进制的数÷2,一直÷,直到不能除了,就像是1÷2,在十进制转二进制的时候,它的答案为0,没有余数就写0,然后把前面的余数全部合并在...

    十进制转二进制 多举几个例子(先谢了。)

    十进制转二进制简单的来讲,就是把一个十进制的数÷2,一直÷,直到不能除了,就像是1÷2,在十进制转二进制的时候,它的答案为0,没有余数就写0,然后把前面的余数全部合并在一起,不是加在一起,如果第一个数是0,那么则看做1,其它的还是照搬。

    首先讲一下“权重”的概念,数字中某位的权重:2的(该位所在的位数(从右至左)-1)次方,比如:100的权重为:2^(1-1)=1 1的权重为:2^(2-1)=2,二进制转十进制:数字中所有位*本位的权重然后CSS布局HTML小编今天和大家分享和。 比如将10101转化为十进制:10101=1*2^4+0*2^3+

    d3b910a90734d770e31ac7f820aad180.png

    一道c语言编程题,将十进制转换为二进制

    编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。*/ #in打开visual C++ 6.0-文件-新建-文件-C++ Source File。

    定义数组和变量:#include #include void main(){int i, j, n, m;*定义变量i,j,n,m*/int a[16] ={0}/*定义数组a,元素初始值为0*/system("cls");/*清屏*/。

    10进制转换成二进制,第一个题

    215=(11010111)2=(327)8=(D7)16

    十进制小数转换二进制的问题

    整数和小数分别转换。 整数除以2,商继续除以2,得到0为止,将余数逆序排列。 22 / 2 11 余0 11/2 5 余 1 5 /2 2 余 1 2 /2 1 余 0 1 /2 0 余 1 所以22的二进制是10110 小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止。

    c语言怎么将十进制转化成二进制

    #include void main() { //进制转换函数的声明 int transfer(int x); int x; printf("请输入一个十进制数:"); scanf("%d",&x); printf("转换成二进制数是:%d\n",transfer(x)); } int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2

    二进制数如何转换成十进制数?

    比如这个:1*2^5+1*2^4+1*2^3+1*2^2+1=32+16+8+4+1=61 他为什么结果是等二进制数转换成十进制数的方法如下:

    正整数转成二进制,除二取余,然后倒序排列,高位补零。将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就可以。

    十进制转化为二进制的一道题CSS布局HTML小编今天和大家分享答案。

    将十进制数126转化为二进制数是多少?

    用 “除2取余” 算法: 126 / 2 商 63 余数 0 63 / 2 商 31 余数 1 31 / 2 商 15 余数 1 15 / 2 商 7 余数 1 7 / 2 商 3 余数 1 3 / 2 商 1 余数 1 1 / 2 商 0 余数 1 组成二进制数: 111 1110

    十进制转换为二进制的c++代码

    #include //将十进制转为二进制,并输出其中1的个数。 using namespace std; int main() { int t,n,a[100]; int i,k,j; cin>>t; while(t)//控制多组输入 { i=j=0; cin>>n; while(n。=0)//该循环将十进制转为二进制并存入数组a { a[i++]=n%2; n/

    二进制,八进制,十进制,十六进制的计算机习题。 1.数值最小的是? A.十进制数55 B.二进制数110101 C.八进制数101 D.十六进制树42 2.每组数据中第一个数为八进制,第二个数为二进制,第三个树为十六进制,三个数值相同的是? A.277,10111111。

    展开全文
  • Python输出16进制不带0x补零,整数转16进制,字符串转16进制   在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也...

    Python输出16进制不带0x补零,整数转16进制,字符串转16进制

      在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也就是ASCii码之外的字节值,或是字节值不是字母和数字的,是一些特殊符号),如物联网的MQTT协议的信息,以及我们自定义的二进制应用协议,而不是基于可见字符或JSON组装的信息流。但我们希望看到的是类似这样的信息“0A 53 49 B7 FC 2E”。

      这些二进制数据如果直接用print()函数打印,则在控制台看到的是以字节值代表的字符形式,看到的很多就是乱码。如果用Python里的hex()函数转一下再依次输出,会在每个前面都带有“0x”字符,并且01会打印成1,看起来就很不整齐,感觉比较乱,并且打印的时候要人为在每个字节后面加入空格才能分开字节。

      经过实践,我们可以通过格式化输出将字节值变成16进制字符后,再用join()函数输出,就可以实现我们要的效果了,想打印字符串的ASCii值也可以,只不过先用ord()函数转一下,下面是我封装的两个函数,分别对应字节类型和字符串类型的输出,调试通过,仅供参考。

    打印字节类型的:

    # 字节列表以16进制格式打印数据
    def print_bytes_hex(data):
        lin = ['%02X' % i for i in data]
        print(" ".join(lin))
    
    # 测试字节列表,这也是网络传输收到的原始类型
    arr = [0x4B, 0x43, 0x09, 0xA1, 0x01, 0x02, 0xAB, 0x4A, 0x43]
    print_bytes_hex(arr)
    
    '''
    控制台输出:
    4B 43 09 A1 01 02 AB 4A 43
    '''
    

    打印字符串类型的:

    # 字符串或字符列表以16进制格式打印数据
    def print_string_hex(data):
        lin = ['%02X' % ord(i) for i in data]
        print(" ".join(lin))
    
    # 测试字符串类型
    arr = 'Work'
    print_string_hex(arr)
    
    '''
    控制台输出:
    57 6F 72 6B
    '''
    

      如果我们是开发物联网的项目,涉及到信令需要与硬件开发人员交流的时候,硬件那边基本都是以16进制描述的,所以在服务端输出格式统一的数据流格式,方便大家交流。

      上面的实现也可以用循环打印(在打印的时候格式化和加空格)实现,但是写起来略显臃肿,但是不用生成新的列表,对瞬间内存占用有利(抱歉,写硬件代码留下的习惯,总是会想到内存占用,因为单片机的资源实在有限)大家可以根据这个自己改进。

    展开全文
  • 二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制; 1、 正整数二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。 也就是说,将正的十进制数除以二,得到的商再...
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 ...十进制就是我们在计算中常用的进制,所以就...1.二进制转八进制 拿二进制数10010110举例 首先需要3个二进...
  • 二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制; 1、 正整数二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。  也就是说,将正的十进制数除以二,得到的商再...
  • js ipv6转二进制补零操作)

    千次阅读 2018-12-17 13:32:48
    有些时候我们需要对ipv6格式进行补零,然后转化为二进制操作 1.首先对ipv6格式进行补零,还原到最初格式的16进制字符串 function ipv6_to_hex(address){ var ipv6_to_16=''; var ipv6_1=[]; ...
  • 二进制如何十进制,十进制如何转二进制

    万次阅读 多人点赞 2018-04-06 17:57:29
    学计算机的朋友刚开始学习时都要接触... 二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;1、 正整数二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。 也就是说...
  • php /** *十进制转二进制、八进制、十六进制 不足位数前面补零* * * @param array $datalist 传入数据array(100,123,130) * @param int $bin 转换的进制可以是:2,8,16 * @return array 返回数据 array() 返回没有...
  • php教程/***十进制转二进制、八进制、十六进制 不足位数前面补零*** @param array $datalist 传入数据array(100,123,130)* @param int $bin 转换的进制可以是:2,8,16* @return array 返回数据 array() 返回没有数据...
  • 二进制转十进制 转化详解

    千次阅读 多人点赞 2019-07-23 10:29:33
    二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制; 1、 正整数二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。 也就是说,将正的十进制数除以二,得到的商再除以二...
  • 十进制二进制 十进制八进制 十进制十六进制 十六进制成十进制 十六进制二进制 十六进制成八进制 八进制成十进制 八进制二进制 八进制成十六进制 二进制转十进制 二进制转八进制 二进制转...
  • java实现二进制转十六进制

    千次阅读 2017-07-29 22:50:51
    java实现二进制转十六进制
  • 之前对二进制和十进制转换的算法一直比较模糊,后来看...下面我从正整数、负数、小数这三个部分记录二进制转十进制,然后反转。 1.正整数 24 https://jingyan.baidu.com/article/597a0643614568312b5243c0.html ...
  • 进制转换 1.1 二进制与十进制之间的转换 十进制转二进制 方法为:十进制数除2取余法,即...方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零二进制转八进制 方法为...
  • 二进制和十进制转换

    2017-07-25 00:53:00
    正整数二进制:除二取余,直到商为零,然后倒序排列,高位补零。 例:42的二进制为:00101010 小数转换为二进制:乘二取整,直到小数部分为零,然后正序排列,即为二进制小数部分。 例:0.125的二进制为0...
  • Java int转16进制以后补零及F大写

    千次阅读 2019-08-16 13:25:13
    需要将int类型的数字转换为16进制字符串,不足两位的补零,f全部大写。 用下面这个apache的commons-lang3工具包,功能强大,号称Java第API。 import org.apache.commons.lang3.StringUtils; 代码: String tmp ...
  • 函数功能,输入四位数整型,每一位转换成四个字节的二进制,总共16位,每一位0-1代表故障情况。 QString gui::int4ToBin(QByteArray intData) { QString result; for (int i=0; i< intData.size(); i++) { ...
  • 二进制转其他进制

    千次阅读 2019-09-30 19:33:33
    计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。 2进制,用两个阿拉伯数字:0、1; 8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;...首先是二进制转...
  • 学计算机的朋友刚开始学习时都要接触进制之间的转换,二进制、十进制、八进制、十六进制等,这个是很枯燥的,去就蒙圈了,别蒙别蒙,今天咱们一个一个搞定,看看二进制和十进制之间如何相互转换的。...
  • | (0xff0000L & ((long) bytes[startIndex + 5] << 16)) | (0xff00L & ((long) bytes[startIndex + 6] )) | (0xffL & (long) bytes[startIndex + 7])); } /** * 将字节数组前4字节转换为float型数值 ...
  • 听说优酷前端面试有问进制数转换的,甚至是负正整数转换为二进制,那就索性一次整个明白~... 正整数转二进制、负整数转二进制、小数转二进制 1、 正整数二进制。  口诀:除二取余,倒序排列,高位补零。  ...
  • 十进制转二进制八进制十六进制二进制转八进制规律:合三为一,不足在前面补零例如: 二进制:101 100 111 八进制:0541 二进制转十六进制规律:合四为一,不足在前面补零例如: 二进制:1111 0011 1001 ...
  • Python输出16进制不带0x补零,整数转16进制,字符串转16进制在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,698
精华内容 2,279
关键字:

二进制转16进制补零