Hex 和string 互转工具类

关于byte[]通过Integer.toHexString(byte[] & 0xFF)的转化 首先看一下遇到的代码: public static String parseByte2HexStr(byte buf[]) { StringBuffer sbf = new StringBuffer(); for (int i = 0; i String hex = Integer.toHexString(buf[i] & 0xFF); if (hex.length() == 1) { 阅读详情
package com.hisun.merchant.utils;


public class HexStringByte
{
  public static String stringToHex(String bin)
  {
    char[] digital = "0123456789ABCDEF".toCharArray();
    StringBuffer sb = new StringBuffer("");
    byte[] bs = bin.getBytes();


    for (int i = 0; i < bs.length; i++) {
      int bit = (bs[i] & 0xF0) >> 4;
      sb.append(digital[bit]);
      bit = bs[i] & 0xF;
      sb.append(digital[bit]);
    }
    return sb.toString();
  }


  public static String hexToString(String hex)
  {
    String digital = "0123456789ABCDEF";
    char[] hex2char = hex.toCharArray();
    byte[] bytes = new byte[hex.length() / 2];


    for (int i = 0; i < bytes.length; i++) {
      int temp = digital.indexOf(hex2char[(2 * i)]) * 16;
      temp += digital.indexOf(hex2char[(2 * i + 1)]);
      bytes[i] = (byte)(temp & 0xFF);
    }
    return new String(bytes);
  }


  public static String byteToHex(byte[] b)
  {
    String hs = "";
    String tmp = "";
    for (int n = 0; n < b.length; n++)
    {
      tmp = Integer.toHexString(b[n] & 0xFF);
      if (tmp.length() == 1)
        hs = hs + "0" + tmp;
      else {
        hs = hs + tmp;
      }
    }
    tmp = null;
    return hs.toUpperCase();
  }


  public static String byteToHex2(byte[] b)
  {
    String hs = "";
    String tmp = "";
    for (int n = 0; n < b.length; n++)
    {
      tmp = Integer.toHexString(b[n] & 0xFF);
      if (tmp.length() == 1)
        hs = hs + "0x0" + tmp;
      else {
        hs = hs + "0x" + tmp;
      }
    }
    tmp = null;
    return hs;
  }


  public static byte[] hexToByte(byte[] b)
  {
    if (b.length % 2 != 0) {
      throw new IllegalArgumentException("���볤�Ȳ���ż��");
    }
    byte[] b2 = new byte[b.length / 2];
    for (int n = 0; n < b.length; n += 2) {
      String item = new String(b, n, 2);


      b2[(n / 2)] = (byte)Integer.parseInt(item, 16);
    }
    b = (byte[])null;
    return b2;
  }
}
c# 读hex_C# 十六进制Hex处理类 Unity中Hex转换 拿java写的类改的 可用于Unityusing System.Collections;using System;using System.Linq;using System.Collections;using System.Collections.Generic;using System.Text;using System.Threading;/** 字符转换工具类* By StanWind*/... 阅读详情

相关推荐

hex2ascii_Hex2Char_十六进制转字符串_

在网络通信中经常用到16进制和ASCII码字符数组互相转换的功能

Java 十六进制(Hex)与byte数组之间的转换

一、十六进制(Hex)与字节(byte)的概念 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15。 字节(byte): java中一个byte为8个二进制位。 转换原理: 每个二进制位有两种状态,分别为0,1 因此,两个二进制位有4种状态,分别为:00,01,10,1...

lxw1844912514的博客 1万+

Plecs仿真进阶:半桥LLC谐振变换器从开环到闭环的实战解析

本文通过Plecs软件,详细解析了半桥LLC谐振变换器从开环模型搭建到闭环控制实现的完整仿真流程。文章深入探讨了谐振参数设置、关键波形解读,并重点分享了基于PI控制器的闭环调试实战经验与参数整定技巧,帮助工程师高效掌握这一高效拓扑的仿真与设计方法。

weixin_29231263的博客 278

java八进制、十进制、十六进制(hex)ASCII码字符串和String互转

笔者在做Android串口开发的时候,与串口设备间的通信经常内容都是16进制的 发送命令的时候需要先把命令转成16进制的ASCII字符串。 接收到设备的反馈时需要把16进制的ASCII字符串转成对应的明文。 比如我们要发送的明文为ABCDEF,需要先转成对应的16进制ASCII码字符串414243444546 比如我们收到的反馈为16进制的ASCII码字符串313233343536,需要转...

野猿新一 1万+

SFM(structure from motion 从运动恢复结构)和MVS(multi-view stereo 多视图立体视觉)

主要目的:SFM是重建稀疏点云的,MVS重建的是稠密点云。 输入的数据:SFM是没有标定的数据,而MVS输入的是标定的数据。 为什么SFM无法重建出稠密的点云,但是MVS可以? SFM中我们用来做重建的点是由特征匹配提供的!这些匹配点天生不密集!MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 SFM和MVS关系 SFM给MVS算好了输入视角的位姿,内参,稀疏点云以及它们的共视关系,MVS再利用这些信息以及彩色图

Vpn_zc的博客 1万+

软件项目质量管理

识别项目中涉及质量管理的不同角色,如项目经理、质量经理、测试人员等,明确每个角色的职责和任务,包括负责哪些质量管理活动和决策。1、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。2、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。测试用例表是质量控制过程中的关键工具,确保所有功能和场景都被验证,减少项目中的缺陷。1、理解项目质量管理的基本过程,包括质量计划、质量保证、质量控制和质量改进;明确质量管理活动中的角色和职责。

weixin_51996255的博客 1258

字节数组互转Hex编码工具类

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.security.MessageDigest; import java.util.Arrays; public class HexCodeUtils { public st...

做我的猫的博客 4014

非结构化数据在大数据湖中的应用实践

想象一下,你正在整理一个杂乱的书房。有些书整整齐齐地放在书架上,每本书都有明确的标题、作者和出版日期——这些就是结构化数据,它们像数据库中的表格,有固定的格式和字段。但书房里还有更多东西:散落的照片、手写的笔记、录音带、视频光盘、甚至还有画作。这些物品没有固定的格式,每件都独一无二——这就是非结构化数据。在技术术语中,非结构化数据是指没有预定义数据模型或组织形式的信息。文本文档(Word、PDF、TXT)电子邮件和社交媒体内容图像和照片(JPG、PNG)音频文件(MP3、WAV)

软件工程实践的博客 361

[C语言]string与Hex的相互转换

由于很多时候,串口通信的协议可能是字符数组构成的,每一个字节都表示一种信息,在调试的时候,将它们输出显示,就需要将hex型式的字符数组转换成便于显示的string字符串,现总结出该函数,仅供参考。 /************************************************* Function: hex2string Description: hex字符数组转换成str...

qq_1021154513 2万+

32、高光谱遥感技术在军事领域的应用解析

高光谱遥感技术凭借其高分辨率和精细光谱分析能力,在军事领域广泛应用于战场详细侦察、伪装目标识别及目标实际温度与发射率的检测,显著提升了目标识别精度和作战支持能力。同时,该技术在内陆水体成分反演、海洋环境监测和农业管理等领域也展现出巨大潜力。尽管面临数据量大、处理复杂、技术融合不足和仪器性能限制等挑战,未来通过人工智能融合、高效算法研发和先进仪器开发,高光谱遥感技术将在多领域实现更深入应用与发展。

blue的专栏 229

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8159

string 和hex相互转化

string与hex的相互转换 string 转 hex 调用 std::stoi函数(c++11) std::string str = "abcd123"; unsigned char hex = std::stoi(str,0,16); hex 转 string std::string HexArrayToString(const unsigned char* data,int len) { const std::string hexme = "0123456789ABCDEF";

conggai1647的博客 1万+

innovus:insert Power Switch失败,报告not covered by a row问题解析

这个问题就是switch找不到可以放置的row,分析就从两方面入手,一方面从voltage area下手,一方面从row和site入手。检查发现voltage area设置正确,row也存在,只不过lef里缺少对应switch的双倍高的site。更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 1159

微信小程序-string和hex数据转换

近期在开发微信小程序时,需要用到hex数据,但是在传输层却不能直接传输hex数据,必须要转成string类型传输,所以就涉及到数据转换问题。网上大部分转换不能满足需求,故自行设计转换函数,贴出来与大家共享。 1. hex转字符串 function myHextoString(hex) { let out = ''; for (let i = 0; i < hex.length; i+...

静静流淌的柯溪的博客 5894

android 14.0 去掉usb授权提示框 默认给予权限

在14.0的系统rom产品开发中,在进行iot关于插入usb设备的开发过程中,在插入usb设备时会弹出usb授权提示框,也带来一些不便, 这个需要默认授予USB权限,插拔usb都不弹出usb弹窗所以这要从usb授权相关管理页默认给与usb权限,接下来分析下 相关的实现功能流程

安卓兼职framework和app工程师的博客 2261

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java string转hex_java字符串与Hex互转

packagecom.joe.readwritemacs.tool;/*** reference apache commonshttp://commons.apache.org/codec/**@authorAub**/public classHex {/*** 用于建立十六进制字符的输出的小写字符数组*/private static final char[] DIGITS_LOWER= { '0...

weixin_36023930的博客 3488

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

String Hex互相转换

String和Hex互相转换。 1.String转Hex,由于String元素本身就是数字,所以我们可以直接Format16进制。但是需要注意char是有符号的,所以我们需要转化为无符号的。whacr不需要转化 2.Hex转String。在转之前我们需要知道Hex是由wchar源转换的还是char转的。因为wchar占2个字节。而char一个字节。转换为对应的字符串的时候,wchar对应4个字符。...

CAir2的专栏 6333

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

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

Flutter/dart hex算法 加密 解密 编码 解码 String to hex

就很单纯的hex算法,但是我查过很多资料都是hex转color什么的 这个是hex和string的互转 class Hex{ /// Creates a `Uint8List` by a hex string. static Uint8List createUint8ListFromHexString(String hex) { if (hex == null) throw new ArgumentError("hex is null"); var result = new U.

arr的博客 3649

十六进制(hex)ASCII码字符串和String互转

/*0-9对应Ascii 48-57 *A-Z 65-90 *a-z 97-122 *第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字 */ /** * ASCII码hex字符串转String明文 * 每两个字符表示的16进制ASCII码解析成一个明文字符 * @param hex * @return */...

qq_43560721的博客 4767

hex to string

hex16进制转换字符串——开发者在线工具,工具猫hex转字符串,hex转string,string转hex,16进制转字符串,hex转字符串在线工具,hex转str在线工具,hex转string在线工具,hex string在线转换工具,在线hex转字符串,在线hex,在线hex16进制转中文字符串,16进制转中文,在线hex转中文,在线hex转字符,16进制转字符,字符转16进制,汉字转16进制,中文转16进制,16进制转中文,16进制转字符https://www.toolscat.com/decode

大叶子不小的博客 2332

[单片机框架] [str_hex] 字符串和16进制互转 string to hex

本文介绍C语言中字符串与十六进制字节值的互转方法,提供str_to_hex(字符串转十六进制)和byte_to_string(字节转字符串)两个核心函数,涵盖原始实现、使用示例及注意事项。针对非法输入、空指针、缓冲区溢出等问题,进一步优化为带错误处理的safe版本,确保代码安全可靠,可直接集成至嵌入式或底层开发项目中。

嵌入式单片机实验室 1793

c语言hex与string互转

hex转string void hex2str(uint8_t *input, uint16_t input_len, char *output) { char *hexEncode = "0123456789ABCDEF"; int i = 0, j = 0; for (i = 0; i < input_len; i++) { output[j++] = hexEncode[(input[i] >> 4) & 0xf];

leeshine优快云的博客 6979

C# 自制 hex与str互转小工具 成品与源码分享 相互学习

想自己制作一个hex与str互转小工具 比如,输入hex 0x01与0x12,就在输入框内写 0112 (两个字节) 会输出这两个字节的ASCII:30313132 (四个字节) 初始设计操作界面如图: 代码如下 ...

tiantangmoke的博客 1231

C++ 类型转换 int, hex,char* float, string, wstring

C++ 日常的开发中经常会用到类型的相互转换,这里记录一下;

q610098308的专栏 1719

Dart Uint8List Hex字符串 互转

static toHex(Uint8List bArr) { int length; if (bArr == null || (length = bArr.length) <= 0) { return “”; } Uint8List cArr = new Uint8List(length << 1); int i = 0; for (int i2 = 0; i2 < len...

Mrack 7694

byte、hex、string 格式转换

【代码】byte、hex、string 格式转换。

嗯... 2607
上一篇: Base64 工具类
下一篇: sql 分组查询和子查询语句
phpfzh
博客等级 码龄10年 22粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值