精华内容
下载资源
问答
  • HexView for Windows(强大的十六进制Hex文件查看器), The HEXVIEW.ZIP file contains the HexView utility. This utility is for Windows and is freeware. 免费软件!!
  • Java中String字符串转换十六进制Hex类型 今天我们说一下Java中 String字符串转换为Hex十六进制字符串、byte[]字节数组转换Hex十六进制字符串。 好,接下来代码走起来--------> 1、字符串转换为十六进制字符串 ...

    Java中String字符串转换十六进制Hex类型

    今天我们说一下Java中 String字符串转换为Hex十六进制字符串、byte[]字节数组转换Hex十六进制字符串。
    好,接下来代码走起来-------->
    

    1、字符串转换为十六进制字符串

    public static String stringToHexString(String s) {  
                String str = "";  
                for (int i = 0; i < s.length(); i++) {  
                    int ch = s.charAt(i);  
                    String s4 = Integer.toHexString(ch);  
                    str = str + s4;  
                }  
                return str;  
    } 
    

    2、十六进制字符串转换为字符串

    public static String hexStringToString(String s) {  
                if (s == null || s.equals("")) {  
                    return null;  
                }  
                s = s.replace(" ", "");  
                byte[] baKeyword = new byte[s.length() / 2];  
                for (int i = 0; i < baKeyword.length; i++) {  
                    try {  
                        baKeyword[i] = (byte) (0xff & Integer.parseInt(  
                                s.substring(i * 2, i * 2 + 2), 16));  
                    } catch (Exception e) {  
                        e.printStackTrace();  
                    }  
                }  
                try {  
                    s = new String(baKeyword, "gbk");  
                    new String();  
                } catch (Exception e1) {  
                    e1.printStackTrace();  
                }  
                return s;  
    }
    

    3、十六进制字符串转换为byte[]数组

    public static byte[] hexStringToByteArray(String s) {
              int len = s.length();
              byte[] b = new byte[len / 2];
              for (int i = 0; i < len; i += 2) {
                  // 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节
                  b[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character
                          .digit(s.charAt(i + 1), 16));
              }
              return b;
    }
    

    4、byte[]字节数组转十六进制字符串

    public static final String bytesToHexString(byte[] bArray) {
              StringBuffer sb = new StringBuffer(bArray.length);
              String sTemp;
              for (int i = 0; i < bArray.length; i++) {
               sTemp = Integer.toHexString(0xFF & bArray[i]);
               if (sTemp.length() < 2)
                sb.append(0);
               sb.append(sTemp.toUpperCase());
              }
              return sb.toString();
    }
    
    展开全文
  • 一、十进制数字转化为无符号的2进制字符串 String Binary = Integer.toBinaryString(88); 二、进制字符串转化为十进制数字...三、十六进制字符串转化为十进制数字 String hexString = Integer.toHexString(136); 四、

    一、十进制数字转化为无符号的2进制字符串

    String Binary = Integer.toBinaryString(88);  
    二、进制字符串转化为十进制数字

    Integer Decimal = Integer.valueOf("10001000", 2);

    三、十六进制字符串转化为十进制数字

    String hexString = Integer.toHexString(136);
    四、十进制转化为十六进制字符串 

    long parseLong = Long.parseLong("88", 16);
    Integer Hex= Integer.valueOf("88", 16);  //两种方法都可以

    五、byte转化为二进制也就是转化为bit

    /** 
     * Byte转二进制 
     */  
    public static String byteToBit(byte b) {  
        return "" +(byte)((b >> 7) & 0x1) +   
        (byte)((b >> 6) & 0x1) +   
        (byte)((b >> 5) & 0x1) +   
        (byte)((b >> 4) & 0x1) +   
        (byte)((b >> 3) & 0x1) +   
        (byte)((b >> 2) & 0x1) +   
        (byte)((b >> 1) & 0x1) +   
        (byte)((b >> 0) & 0x1);  
    }

    六、bits转化为byte

    	/**
    	 * bits转化为byte
    	 * 
    	 * @param bits
    	 *            00100100,0101,00101111,11
    	 * @return
    	 */
    	public static byte[] byte2String(String bits) {
    		// 假设bits 是01,10,011,00以,分隔的格式的字符串
    		String[] bitsStr = bits.split(",");
    		byte[] byteArray = new byte[bitsStr.length];
    		for (int i = 0; i < byteArray.length; i++) {
    			byteArray[i] = (byte) parse(bitsStr[i]);
    		}
    		return byteArray;
    	}
    
    	public static int parse(String str) {
    		// 32位 为负数
    		if (32 == str.length()) {
    			str = "-" + str.substring(1);
    			return -(Integer.parseInt(str, 2) + Integer.MAX_VALUE + 1);
    		}
    		return Integer.parseInt(str, 2);
    	}

    或:

        public static char bitsToHex(int bit) {
            if(bit >= 0 && bit <= 9) {
                return (char)((int)'0'+bit);
            } else if(bit >= 10 && bit <= 15) {
                return (char)((int)'A'+bit-10);
            }
            return '-';
        }
    
        public static String bytesToHex(byte[] bs) {
            if(bs == null)
                return "null";
    
            StringBuilder sb = new StringBuilder();
            for(byte b : bs ) {
                sb.append(bitsToHex((b>>4)&0x0F));
                sb.append(bitsToHex(b&0x0F));
                sb.append(" ");
            }
            return sb.toString();
        }
    


    七、byte转化为十六进制

        /**
         * @param b 字节数组
         * @return 16进制字符串
         * @desc 将字节数组转换为16进制字符串
         */
        public static String Bytes2Hex(byte[] b)
        {
            String hexStr = "";
            for (int i = 0; i < b.length; i++)
            {
                String hex = Integer.toHexString(b[i] & 0xFF);
                if (hex.length() == 1)
                {
                    hex = '0' + hex;
                }
                hexStr += hex.toUpperCase();
            }
            return hexStr;
        }
    也可以这样专转化:

        /**
         * 字节数组转化为十六进制字符串
         * @param bs  字节数组
         * @return  字符串
         */
        public static String bytesToHex(byte[] bs) {
            if(bs == null)
                return "null";
    
            StringBuilder sb = new StringBuilder();
            for(byte b : bs ) {
                sb.append(bitsToHex((b>>4)&0x0F));
                sb.append(bitsToHex(b&0x0F));
                sb.append(" ");
            }
            return sb.toString();
        }
        
    	/**
    	 * bit转化为ASCII中的字符串
    	 * @param bit
    	 * @return
    	 */
        public static char bitsToHex(int bit) {
            if(bit >= 0 && bit <= 9) {
                return (char)((int)'0'+bit);
            } else if(bit >= 10 && bit <= 15) {
                return (char)((int)'A'+bit-10);
            }
            return '-';
        }
    八、 十六进制字符串转化为字节数组

    	/**
    	 * 十六进制字符串转化为字节数组
    	 * @param str
    	 * @param maxSize
    	 * @return
    	 * @throws Throwable
    	 */
    	 public static byte[] bytesFromHex(String str, int maxSize) throws Throwable {
    	        ByteBuffer bb = ByteBuffer.allocate(maxSize);
    	        // fix : order bug
    	        bb.order(ByteOrder.LITTLE_ENDIAN);
    
    	        char[] src = str.toCharArray();
    	        //mLogger.addLog(Utils.bytesToHex(src));
    
    	        for(int i=0; i<src.length; i++) {
    	            if(src[i] == 0x20)
    	                continue;
    	            if(i+1 < src.length) {
    	                int hi = valueFromHex(src[i]);
    	                int lo = valueFromHex(src[i+1]);
    	                bb.put((byte) (hi*16+lo));
    	                i++;
    	            } else {
    	                throw new Exception("failed to convert hex string.");
    	            }
    	        }
    
    	        if(bb.hasArray())
    	            return bb.array();
    	        return null;
    	    }
    	 
    	   public static int valueFromHex(char hex) throws Exception {
    	        if(hex >= '0' && hex <= '9')
    	            return (int) (hex-'0');
    	        if(hex >= 'a' && hex <= 'f')
    	            return (int) (hex-'a'+10);
    	        if(hex >= 'A' && hex <= 'F')
    	            return (int) (hex-'A'+10);
    	        throw new Exception("failed to convert hex.");
    	    }
    九、十六进制字符串转化为二进制字符串

      /**
         * 十六进制转化为二进制
         * @param hexString  十六进制数据源
         * @return  二进制数
         */
        public static String hexString2binaryString(String hexString)
        {
            if (hexString == null || hexString.length() % 2 != 0)
                return null;
            String bString = "", tmp;
            for (int i = 0; i < hexString.length(); i++)
            {
                tmp = "0000"
                        + Integer.toBinaryString(Integer.parseInt(hexString
                        .substring(i, i + 1), 16));
                bString += tmp.substring(tmp.length() - 4);
            }
            return bString;
        }
    十、二进制字符串转化为十六进制字符串
        /**
         * 二进制数转化为十六进制
         * @param bString  十六进制数
         * @return  十六进制数
         */
        public static String binaryString2hexString(String bString)
        {
            if (bString == null || bString.equals("") || bString.length() % 8 != 0)
                return null;
            StringBuffer tmp = new StringBuffer();
            int iTmp = 0;
            for (int i = 0; i < bString.length(); i += 4)
            {
                iTmp = 0;
                for (int j = 0; j < 4; j++)
                {
                    iTmp += Integer.parseInt(bString.substring(i + j, i + j + 1)) << (4 - j - 1);
                }
                tmp.append(Integer.toHexString(iTmp));
            }
            return tmp.toString();
        }
















    展开全文
  • 1.计算 hex 文件大小 unsigned long calculate_file_size(FILE *pFile){ unsigned long fsize; fseek(pFile, 0, SEEK_END); fsize=ftell(pFile); fseek(pFile, 0, SEEK_SET); fsize = fsize/2; //...

    1.计算 hex 文件大小

    unsigned long calculate_file_size(FILE *pFile){
    
        unsigned long fsize;
    
        fseek(pFile, 0, SEEK_END);
        fsize=ftell(pFile);
        fseek(pFile, 0, SEEK_SET);
        fsize = fsize/2; //两个字符一个字节
    
        return fsize;
    }

    2.将 hex 文件转换成 byte 数组

    void Hex_to_ByteArray(FILE *pFile,char *buffer){
    
        unsigned long i=0;
        char ch[3];
    
        while( fgets(ch, 3, pFile) != NULL ) {
    
            int val = strtol(ch, NULL, 16);
            buffer[i++] = val;
    
        }
    }

    3.生成 byte 数组 

    void ByteArray(FILE *pPile, unsigned long fsize){
    
        char buffer[fsize];
        Hex_to_ByteArray(pPile,buffer);
    
    }

    4.打开文件调用函数

    #include <cstdio>
    #include <fcntl.h>
    #include <cstdlib>
    #include <unistd.h>
    
    void main(){
    
        unsigned long fsize;
        FILE *pFile = NULL;
    
        pFile = fopen("/路径/file.hex", "r");
        if(pFile == NULL) printf("Can not open file");
        fsize = calculate_file_size(pFile);
        ByteArray(pPile, fsize);
    
    }

     

    展开全文
  • 并不是到这里下载并拷贝到plugin文件夹里,不是这么用的。... 打开“Plugin Admin...” -> 选中“Hex Editor” ->...先用notepad++打开二进制文件,然后再在plugin菜单里找到 Hex Editor -> view in Hex即可。 ...

    1.安装plugin

    并不是到这里下载并拷贝到plugin文件夹里,不是这么用的。而是点击NotePad++的下拉菜单“Plugin”->  打开“Plugin Admin...” -> 选中“Hex Editor”  ->  单击“Install”

     

    2使用:

    先用notepad++打开二进制文件,然后再在plugin菜单里找到  Hex Editor -> view in Hex即可。

    效果:

     

    展开全文
  • C语言:十六进制(HEX)和浮点类型(float、double)转换

    万次阅读 多人点赞 2020-07-20 09:34:18
    C语言:十六进制(HEX)和浮点类型(float、double)转换
  • Java 十六进制Hex)与byte数组之间的转换

    万次阅读 多人点赞 2017-11-27 23:00:06
    一、十六进制Hex)与字节(byte)的概念 十六进制Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15。 字节(byte): java...
  • matlab十六进制转十二进制代码char2hex-hex2char 将十进制整数字符串转换为十六进制表示形式,然后再返回到Matlab中。 版本1.2,2016年4月21日 下载资料库: 返回一个二维字符串数组,其中每行是S行中每个十进制整数...
  • 十六进制 1,二进制转换十六进制 2,四位二进制转换为一位十六进制。 3,以小数点为标准。 4,左右四位以0补齐。 例如:(0.10101)2=(0000. 1010 1000)2=(0.A8)16 5,参照十六进制计数的数。
  • 发送十六进制比较直观,可以在上位机中直接获取十六进制的数据,然后在在上位机上将十六进制HEX转换成BIN(二进制)或者DEC(十进制)就十分简单有效了。 下面是在Arduino上怎么演示直接发送16进制。 详细请参考...
  • 本文概述什么是十六进制十六进制是一种位置系统,以16为基数表示十六个不同的符号中的数字。这些不同的符号,即“ 0-9”代表从零到九的值,而“ A-F”代表从十到十五的值。什么是二进制?二进制数是一个以2为底的...
  • Qt 十六进制的简单应用, 十六进制的加法 文章目录Qt 十六进制的简单应用, 十六进制的加法0. Qt 助手:1. 十六进制转为十进制2. 十进制转十六进制3. 十六进制加减的应用参考 0. Qt 助手: int QString::toInt(bool ...
  • c++中如何实现二进制(Bin)与十六进制Hex)之间的相互转换 1. 二进制 -> 十六进制 #include "stdafx.h" #include "iostream" #include "string" using namespace std; //二进制 -》十六进制 string ...
  • 众所周知, 内存地址空间是用16进制的数据表示, 如0x8049324, 那为什么需要用十六进制表示呢? 十六进制的意义何在?   编程中,我们常用的还是10进制.毕竟C/C++是高级语言。 比如:int a = 100,b = 99; ...
  • 十六进制190的2进制数Hexadecimal numbers, often shortened to “hex numbers” or “hex”, are numbers represented in base 16 as opposed to base 10 that we use for everyday arithmetic and counting. 十六...
  • notepad++安装十六进制插件Hex Editer

    万次阅读 2017-10-11 14:09:36
    1.到如下网站下载Hex Editer工具 https://sourceforge.net/projects/npp-plugins/files/Hex%20Editor/Hex%20Editor%20Plugin%20v0.9.5/ 2.将插件HexEditor.dll放到notepad++安装目录的...如果需要查看文件的十六进制
  • 浏览 Hex文件,可以设置显示方式:字节、字、双字。每行显示字节数等。
  • Qt十六进制字符串转十六进制编码 QString转HEX QByteArray QString2Hex(QString str) { QByteArray senddata; int hexdata,lowhexdata; int hexdatalen = 0; int len = str.length(); senddata.resize(len/2); ...
  • 最近因工程项目需要读取模块的MAC地址,该设备上传的字符串中包含MAC地址,但是是用十六进制描述,如何将字符串中的十六进制字符转换成十六进制数呢? 例如:字符串中的MAC地址如下 “FA15BF36987F" 一、...
  • 所谓十六进制String,就是字符串里面的字符都是十六进制形式,因为一个byte是八位,可以用两个十六进制位来表示,因此,byte数组中的每个元素可以转换为两个十六进制形式的char,所以最终的HexString的长度是byte...
  • minicom 十六进制(hex)显示接收数据

    千次阅读 2017-09-21 18:55:00
    /******************************************************************************** ... * minicom 十六进制(hex)显示接收数据 * 说明: * 有些情况下,发送的数据不是ascii码,所以需要用hex显示。 * * ...
  • 因为自带的方法在进行十六进制转为二进制的时候,精度在13位字符后就会出现丢失,为了让精度不丢失就自己根据16进制转换2进制的原理写了两个两个方法 如果长度没有超过13位,可以用parseInt("125adf8",...
  • while True: try: #print(int(input(),16)) #十六进制转十进制 int(‘0x2’,16) 十进制转16进制hex() a=input('请输入一个十进制的数:') print(hex(int(a))) except: break
  • QT 十六进制字符串转化为十六进制编码 /************************************************* Function: hexStringtoByteArray() Description: 十六进制字串转化为十六进制...Input: hex->待转化的十六进制字串

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,871
精华内容 27,948
关键字:

十六进制hex