精华内容
下载资源
问答
  • 十六进制转byte数组
    2021-04-21 16:01:02
    
            public static byte[] ByteArrayToHexString(string hexString)
            {
                string h = hexString;
                hexString = hexString.Replace("0x","");
                byte[] byteArray;
                if (hexString != "")
                {
                     byteArray = new byte[hexString.Length / 2];
                    for (var x = 0; x < byteArray.Length; x++)
                    {
                        var i = Convert.ToInt32(hexString.Substring(x * 2, 2), 16);
                        byteArray[x] = (byte)i;
                    }
                   // return byteArray;
                }
                else {
                    byteArray =new byte [0]; 
                }
                return byteArray;
            }

     

    更多相关内容
  • 由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制
  • NULL 博文链接:https://hw1287789687.iteye.com/blog/1882644
  • 怎么说,最近使用ssm框架的时候,需要将文件十六进制的字符串传入数据库,按照传统的sql,一个rs.getBinaryStream()还有rs.setBinaryStream()就可以了,可是在ssm里面就不能这么写的啦。要用纯java去遍历了。 ...

    怎么说,最近使用ssm框架的时候,需要将文件转成十六进制的字符串传入数据库,按照传统的sql,一个rs.getBinaryStream()还有rs.setBinaryStream()就可以了,可是在ssm里面就不能这么写的啦。要用纯java去遍历了。

     

    首先我们了解一下byte[]和十六进制字符串。

     

    众所周知,byte就是我们所说的字节,一个字节有8位的长度,而一个中文字占两个字节,一个十六进制的数用四位可以表示,有了这个基本的认知就可以开始进行转换了!

     

    16进制转byte数组

     

         String src = result.getBinaryFile();

            

          // 将十六进制转化为byte和String

          byte[] baKeyword = new byte[src.length()/2];

          for(int i = 0; i < baKeyword.length; i++) {

            try {

             // 当byte要转化为int的时候,高的24位必然会补1,这样,其二进制补码其实已经不一致了,&0xff可以将高的24位置为0,低8位保持原样。这样做的目的就是为了保证二进制数据的一致性。

             baKeyword[i] = (byte)(0xff & Integer.parseInt(src.substring(i*2, i*2+2),16));

            }

            catch(Exception e) {

             e.printStackTrace();

            }

            }

     

    关键在于明白一个十六进制占4位,需要两个十六进制才能构成一个字节,然后用Integer以16进制输出,接下来还要用0xff对这数进行与(&)运算,原因是在于,这8位构成的数转成32位的INTEGER类型时,需要在前24位自动补1,这样很明显会造成偏差,所以就需要一个全1的十六进制数来和它进行与运算,将前24位转成0,后面的得以保留。这样baKeyword 出来的就是完整的byte数组了,就算里面有中文也可以资瓷啊!当然,可能你还需要把这个数组转成流输出到网页中,用来下载查看啥的,这样的话,只需要把inputStream = ByteArrayInputStream(baKeyword),然后用前台传过来的response.getoutputStream循环写一次就OK啦

     

    byte数组转16进制

     

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

                         byte[] b = new byte[4096];

                         int i = is.read(b);

                         while(i != -1) {

                         baos.write(b,0,i);

                         i = is.read(b);

                         }

    Byte[] a = baos.toByteArray()

     

    反过来明显简单一点,不过也是跟ByteArrayOutputStream脱不了关系。注意:这里的数组我用inputstream.read()代替了,你也可用数组循环遍历,都是一样的,用ByteArrayOutputStream循环写完后,byte数组就都在baos.toByteArray()里面了。

     

     

    最近整理出了有关大数据,微服务,分布式,Java,Python,Web前端,产品运营,交互等1.7G的学习资料,有视频教程,源码,课件,软件工具,面试题等等,这里将珍藏多年的资源免费分享给各位小伙伴们。

    领取方式:https://blog.csdn.net/qq_42914528/article/details/81777449                                      

                                                             

    欢迎大家关注我的公众号:

    里面会分享很多JAVA技术、新知识、新技术、面试宝典等。
    有让技术爱好者(程序猿)得到很大提升的文章资料。

    还在犹豫什么,赶紧关注一波,微信搜索公众号:程序员的成长之路。或者扫描下方二维码进行关注。

                                                                         

                                                                           欢迎关注公众号,和我一起成长!

    展开全文
  • Java十六进制byte数组转换

    千次阅读 2020-11-18 11:53:38
    byte数组转16进制 private static final char[] HEX_CHARS = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; /* * byte[]数组转十六进制 */ public static String bytes2hexStr(byte[]...

    查看我的博客:https://www.zjhuiwan.cn 

    byte数组转16进制
     private static final char[] HEX_CHARS = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
    
    
    /*
     * byte[]数组转十六进制
     */
    public static String bytes2hexStr(byte[] bytes) {
        int len = bytes.length;
        if (len == 0) {
            return null;
        }
        char[] cbuf = new char[len * 2];
        for (int i = 0; i < len; i++) {
            int x = i * 2;
            cbuf[x] = HEX_CHARS[(bytes[i] >>> 4) & 0xf];
            cbuf[x + 1] = HEX_CHARS[bytes[i] & 0xf];
        }
        return new String(cbuf);
    }

    16进制转byte数组

        /**
         * hex字符串转byte数组
         *
         * @param inHex 待转换的Hex字符串
         * @return 转换后的byte数组结果
         */
        public static byte[] hexToByteArray(String inHex) {
            int hexlen = inHex.length();
            byte[] result;
            if (hexlen % 2 == 1) {
                // 奇数
                hexlen++;
                result = new byte[(hexlen / 2)];
                inHex = "0" + inHex;
            } else {
                // 偶数
                result = new byte[(hexlen / 2)];
            }
            int j = 0;
            for (int i = 0; i < hexlen; i += 2) {
                result[j] = hexToByte(inHex.substring(i, i + 2));
                j++;
            }
            return result;
        }

    16进制转10进制

    strSerial = bytes2hexStr(struOut.byData);
    
    System.out.println(strSerial);
    makeDevice(lUserID, "2", "1", "3", "2");
    System.out.println("读卡成功,内容为" + Long.parseLong(strSerial, 16));

     

    16进制补足32位

    while (cardNo.length() < 32) {
        cardNo = "0" + cardNo;
    }
    if (cardNo.length() > 32) {
        cardNo = cardNo.substring(0, 16);
    }
    展开全文
  • 十进制字符串转十六进制byte数组转十六进制,亲测有效,如果对大家有点帮助,请大家多支持下博主。 后面为大家更新更多的实用技巧 下面展示代码。 import java.util.Locale; public class Fromain { public ...

    十进制字符串转十六进制,byte数组转十六进制,亲测有效,如果对大家有点帮助,请大家多支持下博主。

    后面为大家更新更多的实用技巧

    下面展示代码。

    import java.util.Locale;
    public class Fromain {
        public static void main(String[] args) {
            String s2 = "10";
            System.out.println(byteToHex(s2));
    
            byte [] str ={1,12};
            System.out.printf(bytes2HexString(str));
    
        }
    
        /**
         * 十进制字符串直接转十六进制字符串
         * @param str  字符串
         * @return   转换后的字符串
         */
        public static String byteToHex(String str) {
    
            Integer i = Integer.parseInt(str);
            String sd = Integer.toHexString(i);
    
            if (sd.length() == 1) {
                sd = "000" + sd;
            } else if (sd.length() == 2) {
                sd = "00" + sd;
            } else if (sd.length() == 3) {
                sd = "0" + sd;
            }
            return sd.toUpperCase(Locale.getDefault());
        }
    
        /**
         * byte 数组直接转十六进值字符串
         * @param b  数组
         * @return   字符串
         */
        public static String bytes2HexString(byte[] b) {
            StringBuilder r = new StringBuilder();
    
            for (byte value : b) {
                String hex = Integer.toHexString(value & 0xFF);
                if (hex.length() == 1) {
                    hex = '0' + hex;
                }
                r.append(hex.toUpperCase());
            }
    
            return r.toString();
        }
    }
    
    
    运算结果
    000A
    010C
    Process finished with exit code 0
    
    

    博主原文,转载请标明出处

    展开全文
  • Java 16进制byte数组

    千次阅读 2019-09-25 16:52:53
    一个十六进制数(Hex),正好为4个二进制位。一个字节(byte)为8个二进制位。因此,一个字节可表示为两个十六进制数字。我们可以将一个byte用两个Hex表示,同理,我们也可以将两个Hex转换为一个byte。 private ...
  • 十六进制(Hex) 、 字节(Byte)、比特(bit) 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15。 官方语言以0x开始的数据表示...
  • 最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。还包括了一个字节数组十六进制字符串的互相转换。估计遇到蓝牙通信的朋友,应该用的上。
  • Java 十六进制String转byte数组

    万次阅读 2018-10-10 19:14:47
    Java 十六进制String转byte数组 标签(空格分隔): Java 文章目录Java 十六进制String转byte数组基本概念byte和byte[]转十六进制字符串十六进制字符串byte和byte[] 基本概念 十六进制(Hex): 0-9,a-f组成 二进制...
  • NULL 博文链接:https://duanfei.iteye.com/blog/1883475
  • JS 十六进制字符串转十六进制字符串数组以及字节数组 //十六进制字符串转换为数组 function hexStringToArray(str) { var pos = 0; var len = str.length; if (len % 2 != 0) { return null; } len /= 2; var...
  • * 十六进制字符串与byte数组之间的转换 * */ public class Hex2BytesUtils { private static final String HEX_CHARSET = "0123456789ABCDEF"; private static final String BLANK = " "; /** * byte...
  • 十进制: -29 227 十六进制: 0xE3 二进制补码:1110 0011
  • 如何把一个十六进制byte数组转成十进制整数。 如 byte[2] = {0x01,0x00},即十六进制为0x0100,最终转为"256"? eg: byte[n] 转为十进制 for (int i = 0; i<n; i++) { result *= 256; result += byte[n-1-i]; }
  • 在app的开发中,对于数据传输的相关功能中 byte数组和字符串互的功能也是常见功能 byte数组 转十六进制字符串 十六进制字符串转换成字符串 的相关功能 2.2 java版实现功能的相关代码 3.总结 对于相关方法的...
  • private string byteToHexStr(byte[] bytes, int startIndex, int endIndex) { if (bytes == null) return ""; StringBuilder builder = new StringBuilder(); for (int i = startIndex; i < endIndex; i++)...
  • 十六进制与字节数组转换

    千次阅读 2018-05-30 11:17:03
    前段时间开发手持机上的软件,因为A8手持机的射频卡可存储的内容太小,并且需要存储16进制数据,因此就写了一个工具类。上代码:package cn.com.szh;import java.io.UnsupportedEncodingException;public class Main...
  • 在c#项目中用到的二进制、十六进制与字节数组的相互转换 class HexCommon { /// <summary> /// 16进制字符串字节数组 /// 如01 02 ff 0a /// </summary> /// <param name="hexString".....
  • 此工具用于将16进制字符串转换成10进制byte数组
  • 10进制byte数组转成16进制byte数组Java中10进制byte用二进制表示占用8位,16进制的每个字符需要用4位二进制位来表示,则将每一个10进制字节的高4位、低4位分别进行处理,对应到16进制字符(通过与0xf0或0x0f进行&...
  • 读取txt文件中的16进制数组,默认...16进制byte需要将两个字符组成1个字节的byte类型; char * cArray = new char[]{'E' , 'F' , '2' ,'A'}; byte * by16 = new byte[cArray长度 / 2]; for (int i = 0, j=0; i &...
  • android byte字节数组转换十六进制字符串一个demo。里面有几种转换测试代码。我的博客地址:http://blog.csdn.net/qq_16064871。
  • byte数组、十进制、十六进制间的两两转换
  • iOS-十六进制转bytes数组(nsdata)

    千次阅读 2019-08-02 18:52:23
    - (NSData *) stringToHexData { int len = [self length] / 2; // Target length unsigned char *buf = (unsigned char *)malloc(len); unsigned char *whole_byte = buf;... char byte_chars[3] =...
  • 本来我是在对接协议,要将16进制字符串转为byte放进byte数组, 因为协议命令都是前加0x的,我就想当然开始下手了。 刚开始是这样写的。 是不是很愚蠢呢?不过毕竟是第一次写,我就去问度娘,请教大佬。 ...
  • Java byte数组十六进制字符串互

    千次阅读 2021-03-01 10:46:51
    1 /**2 * reference apache commons http://commons.apache.org/codec/4 *5 *@authorAub6 *7 */8 public classHex {910 /**11 * 用于建立十六进制字符的输出的小写字符数组12 */13 private static final char[] ...
  • delphi十六进制字符串hex转byte数组

    千次阅读 2020-06-23 13:09:29
    //十六进制字符串转入byte数组 1 function Hex2Byte(sRandomPwd:String):TByteArr; var Buf:TByteArr; begin SetLength(Buf, Length(sRandomPwd) div 2); // HexToBin(PAnsiChar(sRandomPwd), @Buf[0], Length...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,584
精华内容 17,033
关键字:

十六进制转byte数组