byte[]转十六进制String 十六进制String转byte[]

Java byte 类型用法集合 throw new IllegalArgumentException("byte数组必须不为空,并且是2位!throw new IllegalArgumentException("byte数组必须不为空,并且是8位!throw new IllegalArgumentException("byte数组必须不为空,并且是2位!throw new IllegalArgumentException("byte数组必须不为空,并且是4位!结果是int,但是符号位是0,说明是正数,最后就是正整数234. 阅读详情

1. byte[]转十六进制String

所谓十六进制String,就是字符串里面的字符都是十六进制形式,因为一个byte是八位,可以用两个十六进制位来表示,因此,byte数组中的每个元素可以转换为两个十六进制形式的char,所以最终的HexString的长度是byte数组长度的两倍。闲话少说上代码:

public static String byteArrayToHexStr(byte[] byteArray) {
    if (byteArray == null){
        return null;
    }
    char[] hexArray = "0123456789ABCDEF".toCharArray();
    char[] hexChars = new char[byteArray.length * 2];
    for (int j = 0; j < byteArray.length; j++) {
        int v = byteArray[j] & 0xFF;
        hexChars[j * 2] = hexArray[v >>> 4];
        hexChars[j * 2 + 1] = hexArray[v & 0x0F];
    }
    return new String(hexChars);
}

上述代码中,之所以要将byte数值和0xFF按位与,是因为我们为了方便后面的无符号移位操作(无符号右移运算符>>>只对32位和64位的值有意义),要将byte数据转换为int类型,而如果直接转换就会出现问题。因为java里面二进制是以补码形式存在的,如果直接转换,位扩展会产生问题,如值为-1的byte存储的二进制形式为其补码11111111,而转换为int后为11111111111111111111111111111111,直接使用该值结果就不对了。而0xFF默认是int类型,即0x000000FF,一个byte值跟0xFF相与会先将那个byte值转化成int类型运算,这样,相与的结果中高的24个比特就总会被清0,后面的运算才会正确。

2. 十六进制String转byte[]

没什么好说的了,就是byte[]转十六进制String的逆过程,放代码:

public static byte[] hexStrToByteArray(String str)
{
    if (str == null) {
        return null;
    }
    if (str.length() == 0) {
        return new byte[0];
    }
    byte[] byteArray = new byte[str.length() / 2];
    for (int i = 0; i < byteArray.length; i++){
        String subStr = str.substring(2 * i, 2 * i + 2);
        byteArray[i] = ((byte)Integer.parseInt(subStr, 16));
    }
    return byteArray;
}
AD4030-24BBCZ详细资料 Analog Devices 模数转换器 - ADC 24-Bit, 2 MSPS, SAR ADC AD4030-24BBCZ详细资料  Analog Devices 模数转换器 - ADC 24-Bit, 2 MSPS, SAR ADC 阅读详情

相关推荐

TOPSIS与熵权法实战:从数学建模到Python实现(附国赛案例分析)

本文详细解析了TOPSIS(逼近理想解排序法)与熵权法在数学建模中的协同应用,并通过Python代码实现完整流程。文章以国赛案例为背景,从指标正向化、数据标准化、熵权法计算客观权重,到TOPSIS综合排序,手把手指导如何解决多指标决策问题,为数据分析与建模提供了一套可复用的实战工具箱。

weixin_29079643的博客 245

【byte类型数据转换16进制字符串】

数据转换

qq_33180996的博客 7631

斯坦福HumanPlus机器人核心技术解析:从HST强化学习框架到HIT模仿学习的实现路径

本文深入解析了斯坦福HumanPlus人形机器人的核心技术实现路径。其核心在于HST强化学习框架与HIT模仿学习架构的协同:HST作为“小脑”,通过rsl_rl框架在仿真中训练稳健的低级运动控制;HIT作为“大脑”,基于改进的Transformer架构学习高级任务规划。文章详细拆解了从算法原理、代码实现到硬件部署的全流程,为复现这一前沿机器人系统提供了实战指南。

weixin_29082143的博客 282

byte[] 转hexString

public static String byteArrayToHexStr(byte[] byteArray) { if (byteArray != null && byteArray.length != 0) { StringBuilder sb = new StringBuilder(); char[] hexArray = "012...

vily_luky的博客 665

十二、基于FPGA实现slave SelectMAP配置逻辑

slave SelectMAP配置

weixin_41838250的博客 8755

python 成语接龙-连接数据库

from xpinyin import Pinyin import pymysql while 1: conn = pymysql.connect( host='localhost', #本地连接 user='root', #数据库账户名 password='password', #数据库密码 db='dic',

Hero2902的博客 598

JAVA 16进制byte数组与String字符串互转

//将16进制字符串转换成Long byte[] fxx={01,02}; Long fx=Long.parseLong(bytesToString2(fxx).replace(" ",""), 16); //16进制byte数组转string private String bytesToString(byte[] arg, int length) { String result =...

hadkfhkdh的博客 5072

STM32异常与中断过程详解

1. 异常与中断概念引入 异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。 下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来

luobeihai的博客 1万+

java 十六进制数组转字符串_Java中16进制bety[](数组)与String字符串相互转换

packageutil;/***Java中16进制bety[](数组)与String字符串相互转换*@authorqiheo.com*/publicclassUtil{/***16进制bety[]转换String字符串.方法一*@paramdata*@returnString返回字符串无空格*/publicstaticStringbytesToString(byte...

weixin_36025176的博客 1795

手把手教您解决 AdGuard Home DNS重写功能失效的问题

AdGuard Home 设置了 DNS 重写,规则明明没问题,客户端却死活解析不到内网 IP?🤯 别急着重装!🚫 本文手把手教你如何解决软路由 DNS 解析“玄学”故障!🛠️🚀

XiaoqiangClub的博客 924

【连接器专题】 EIA-364 系列标准的完整列表

EIA-364 系列标准在电子工业中具有重要的地位,为电子连接器和互连系统的测试和验证提供了统一的、可操作的流程和方法,有助于提高电子产品的质量和可靠性,促进了电子工业的发展

一点硬件 2660

byte[]与十六进制字符串的转换

/** * byte[]与16进制字符串相互转换 * */ public class BytesHexStrTranslate { private static final char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e...

dc_user的博客 5810

Python代码加密与发布方案详解

本文详细介绍了多种Python代码保护方案,从基础加密到高级混淆,以及商业化发布的最佳实践。基础加密方案包括编译为字节码和使用PyArmor基础加密,适合临时保护和小项目。商业级加密方案如Cython编译和Nuitka完整打包,提供更高的保护强度和执行效率。高级混淆方案涉及控制流混淆、字符串加密和完整混淆工具链,进一步增加逆向难度。商业化发布方案则强调许可证系统集成、硬件绑定保护和完整发布流程。此外,文章还探讨了反逆向技术、最佳实践建议和常见问题解决方法。通过组合使用这些技术,可以构建出适合不同安全需求的P

数据知道的博客 1万+

C++中将string转byte、十六进制数转十进制方法及数据导出为excel格式方法

利用C++实现将string类型数据转为byte类型,然后将十六进制byte类型数据再转成十进制数据,最后将处理好的数据导出为excel格式保存

weixin_52402390的博客 9718

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 十六进制String转byte数组

Java 十六进制String转byte数组 标签(空格分隔): Java 文章目录Java 十六进制String转byte数组基本概念byte和byte[]转十六进制字符串十六进制字符串转byte和byte[] 基本概念 十六进制(Hex): 0-9,a-f组成 二进制: 01表示 字节(byte): Java中一个字节表示8个二进制位 字符(char): Java中一个字符有两个字节 4个二...

留住这时光的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

十六进制String转byte[]

十六进制String转byte[]

weixin_53598981的博客 1241

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

c# Byte型数组转十六进制的String 和 十六进制的String 转 Byte型数组的方法

// 把字节型转换成十六进制字符串 public static string ByteToString(byte[] InBytes) { string StringOut = ""; foreach (byte InByte in InBytes) { Stri

lujianfeiccie2009的专栏 2万+

arduino byte转string_大牛都是这样转十六进制字符串的!全是细节呀

作者 | Java圣斗士 | 原创图文,转载请注明出处全文约3000字(含代码),阅读需要10分钟,建议收藏哈喽大家好,欢迎关注Java圣斗士,每日编程课堂带你飞!有很多身处物联网或者通讯行业,以及一些智能硬件领域的小伙伴经常会需要和一些byte指令打交道,有时候需要将这些byte指令输出显示,或者存储起来,就需要将它们转换为十六进制的指令字符串。那么今天我们就来讨论一下如何将一个byte数组转化...

weixin_39862484的博客 3990

十六进制String字符串转byte数组

数组操作

Wynb1020的博客 1634

String byte[]

  1. String转byte[] 首先我们来分析一下常规的String转byte[]的方法,代码如下: public static byte[] strToByteArray(String str) { if (str == null) { return null; } byte[] byteArray = str.getBytes(); ...

qq_30509055的博客 2339

python中十六进制字符串(hex string)转byte方法

python中 16进制字符串(hex string) 转 byte

ldahual的博客 3846

java 1转bytes_Java中String和byte[]间的转换浅析

Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实现。1. String转byte[]首先我们来分析一下常规的String转byte[]的方法,代码如下:public static byte[] strToByteArray(String str) ...

weixin_36373949的博客 1297

Java中byte[]数组转十六进制String(利用Integer)

public static String bytesToHexString(byte[] data){ StringBuilder strb = new StringBuilder(); for (int i = 0; i < data.length; i++) { strb.append(Integer.toHexString(data[

cheng9981的博客 352

Android Studio的笔记--String和byte[]

android String 和byte互相转换。字节数组转换。 例如输入bytes= {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100};得到结果文本显示【Hello World】

weixin_45208598的博客 2259

Java String-Byte[]-Hex转换实例

实测可用系列: String → Byte[]:  public static void main(String[] args) { String str = "Hello"; Byte[] bytebuff = str.getBytes(); } Byte[] → String: public static void main(String[] args) { ...

Wellven_chen的博客 841

Java Hex 16进制的 byte String 转换类

因为工作上的需要,整理了一份 16进制的 byte String值转换的类。 有需要的朋友可以直接拿去用。

hzbigdog的专栏 5万+
上一篇: Java short long int 与byte数组之间相互转换
github_as
博客等级 码龄9年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值