当前位置: 首页 > news >正文

Java——进制转换的一些内容

Java——进制转换的一些内容

    • 1.16进制字符串String转字节数组byte[]
    • 2.16进制字符串String转10进制数字int
    • 3.字节数组byte[]转字符串String
    • 4.16进制字符串String-->byte[]-->String(使用ByteBuffer转换)
    • 5.字节数组byte[]转字符数组char[]
    • 6.字节byte转16进制字符串String
    • 7.字节数组byte[]转16进制数字int
    • 8.字节数组byte[]转16进制字符串String

1.16进制字符串String转字节数组byte[]

String hex = "46534E3131323130393031303030313234";
// 把16进制字符串转换为字节数组 [70, 83, 78, 49, 49, 50, 49, 48, 57, 48, 49, 48, 48, 48, 49, 50, 52]
public byte[] hexToBytes(String hex){byte[] bytes = Hex.decode(hex);return bytes;
}

2.16进制字符串String转10进制数字int

String hex = "FFFF";
String hex2 = "0xFFFF";
public int hexToInt(String hex){int n = Integer.parseInt(hex, 16);//int n = Integer.parseInt(hex2.substring(2), 16);return n;
}

3.字节数组byte[]转字符串String

String hex = "46534E3131323130393031303030313234";
byte[] bytes5 = Hex.decode(hex);
String str = new String(bytes5);
public String bytesToString(byte[] bytes){String str = new String(bytes5);return str;
}

4.16进制字符串String–>byte[]–>String(使用ByteBuffer转换)

String hex = "46534E3131323130393031303030313234";
public String hexStringToString(String hex) throws CharacterCodingException {byte[] bytes = HexUtils.fromHexString(hex);// 把byte数组读取到ByteBuffer中ByteBuffer source = ByteBuffer.wrap(bytes);StringBuilder sb = new StringBuilder();//遍历字节数组的长度,把每个字节转成Stringfor (int i = 0; i < bytes.length; i++) {byte[] bytes1 = new byte[1];source.get(bytes1);ByteBuffer buffer1 = ByteBuffer.allocate(1).put(bytes1);buffer1.flip();CharsetDecoder charsetDecoder = StandardCharsets.UTF_8.newDecoder();String s = charsetDecoder.decode(buffer1).toString();sb.append(s);}return sb.toString();
}

5.字节数组byte[]转字符数组char[]

byte[] bytes = new byte[]{35,35};
public char[] bytesToChars(byte[] bytes) {Charset charset = Charset.forName("ISO-8859-1");ByteBuffer byteBuffer = ByteBuffer.allocate(bytes.length);byteBuffer.put(bytes);byteBuffer.flip();CharBuffer charBuffer = charset.decode(byteBuffer);char[] array = charBuffer.array();return array;
}

6.字节byte转16进制字符串String

byte b = Byte.parseByte("1");
public String byteToHexString(byte b) {String str = String.format("0x%02X", b);//需要0x...后面几位数就在最后一个x前面写几,需要字母大写就把最后一个X大写//int c = b & 0xff;//String str = Integer.toHexString(c);//不需要0x,只显示数字return str;
}

7.字节数组byte[]转16进制数字int

byte[] bytes = new byte[]{35,35};
//方法1:10进制byte转16进制字符串,16进制字符串转16进制数字int
public int bytesToInt(byte[] bytes) {StringBuilder stringBuilder = new StringBuilder("");for (int i = 0; i < bytes.length; i++) {int b = bytes[i] & 0xff;String str = Integer.toHexString(b);if (str.length() < 2) {stringBuilder.append(0);}stringBuilder.append(str);}return Integer.parseInt(stringBuilder.toString(),16);
}
//方法2:位运算直接转(数组长度必须小于等于4)
public int bytesToInt(byte[] bytes) {ByteBuffer buffer = ByteBuffer.wrap(bytes);int value = 0;for (int i = 0; i < bytes.length; i++) {value = (value << 8) | (buffer.get() & 0xFF);}return value;
}

8.字节数组byte[]转16进制字符串String

byte[] bytes = new byte[]{35,35};
public String toHexString(byte[] bytes) {if (null == bytes) {return null;}StringBuilder sb = new StringBuilder(bytes.length << 1);for (byte aByte : bytes) {sb.append(hex[(aByte & 0xf0) >> 4]).append(hex[(aByte & 0x0f)]);}return sb.toString();
}

相关文章:

Java——进制转换的一些内容

Java——进制转换的一些内容1.16进制字符串String转字节数组byte[]2.16进制字符串String转10进制数字int3.字节数组byte[]转字符串String4.16进制字符串String-->byte[]-->String&#xff08;使用ByteBuffer转换&#xff09;5.字节数组byte[]转字符数组char[]6.字节byte转…...

使用 Nodejs、Express、Postgres、Docker 在 JavaScript 中构建 CRUD Rest API

让我们在 JavaScript 中创建一个 CRUD rest API&#xff0c;使用&#xff1a;节点.js表达续集Postgres码头工人码头工人组成介绍这是我们将要创建的应用程序架构的架构&#xff1a;我们将为基本的 CRUD 操作创建 5 个端点&#xff1a;创造阅读全部读一个更新删除我们将使用以下…...

电子招标采购系统源码之什么是电子招投标系统?

随着互联网时代的到来&#xff0c;各行业都受到不同的影响&#xff0c;其中招投标行业也不例外。为了顺应互联网潮流的发展&#xff0c;电子招投标逐渐取代传统的纸质的招投标方式&#xff0c;给招标方、投标方、招标代理等各方也带来了前所未有的机遇与挑战。那么什么是电子招…...

匹配文件名称模块glob和fnmatch

匹配文件名称模块glob 1.概述 glob模式规则与re模块的正则表达式规则不大相同&#xff0c;glob模块遵循标准的UNIX路径扩展规则。 fnmatch模块用于根据glob模式比较文件名 2.glob表达式匹配文件名 2.1.测试文件 介绍glob配置规则前&#xff0c;先使用下面的代码创建测试文…...

day12_oop

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、继承 三、重写 四、this和super 五、访问修饰符 零、 复习昨日 局部变量和成员变量什么区别 位置,作用域,初始值,内存位置,生命周期 构造方法…...

在 Flutter 中使用 webview_flutter 4.0 | js 交互

大家好&#xff0c;我是 17。 已经有很多关于 Flutter WebView 的文章了&#xff0c;为什么还要写一篇。两个原因&#xff1a; Flutter WebView 是 Flutter 开发的必备技能现有的文章都是关于老版本的&#xff0c;新版本 4.x 有了重要变化&#xff0c;基于 3.x 的代码很多要重…...

嵌入式ARM工业边缘计算机BL302的CAN总线接口如何设置?

CAN 接口如图所示&#xff0c;输入如下命令&#xff1a; ifconfig -a //查看所有网卡 如果 FlexCAN 驱动工作正常的话就会看到 CAN 对应的网卡接口&#xff0c;如图。从图中可 以看出&#xff0c;有一个名为“can0”的网卡&#xff0c;这个就是 BL302 板上的 CAN1 接口对应的 c…...

Win11系统如何安装Ubuntu20.04(WSL版本)并安装docker

终于还是下定决心去换电脑了……这次采用轻量级的WSL&#xff0c;发现虽然没有占内存的GUI界面&#xff0c;但是编码和阅读文档还是非常nice的 1、首先开启Win11的虚拟机服务 2、下载你期望的Ubuntu服务器&#xff08;这里以20.04为例&#xff09; 安装成功后&#xff0c;发现…...

Elasticsearch和Solr的区别

背景&#xff1a;它们都是基于Lucene搜索服务器基础之上开发&#xff0c;一款优秀的&#xff0c;高性能的企业级搜索服务器。&#xff08;是因为他们都是基于分词技术构建的倒排索引的方式进行查询&#xff09;开发语言&#xff1a;java语言开发诞生时间&#xff1a;Solr2004年…...

如何在北京买房

首先我陈述一点&#xff0c;如果为了买房后再卖掉赚取差价&#xff0c;我这篇文章也许不适合&#xff0c;我这篇文章为整体愿景的发展而设计&#xff0c;为可操作房产的买卖而操作。 买房的愿景&#xff1a; 首先&#xff0c;我们要以一种心态来买房。那就是以始为终的态度&am…...

使用Proxifier+burp抓包总结

一、微信小程序&网页抓包 1. Proxifier简介 Proxifier是一款功能非常强大的socks5客户端&#xff0c;可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。 2. 使用Proxifier代理抓包 原理&#xff1a;让微信相关流量先走127.0.0.1:80到burp。具体…...

安装华为aab包的处理方式

1、转换 aab包 为 apks 说明&#xff1a; 1、bundletool-all-1.11.2.jar 转换文件的工具 2、a.aab aab源文件 3、xxx.apks 导入的文件以及路径&#xff08;例如&#xff1a;D:\Android\xxx.apks&#xff09; 4、–ksxxxx.jks 该aab打包所需的jsk文件 5、三条命令为 jsk打包所…...

Word处理控件Aspose.Words功能演示:使用 C++ 将 RTF 文档转换为 PDF

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。此外&#xff0c;API支持所有流行的Word处理文件…...

【Java|多线程与高并发】进程与线程的区别与联系

文章目录什么是进程什么是线程上下文切换多线程一定比串行执行快吗进程与线程的区别与联系什么是进程 进程的定义:进程是正在运行的程序实体&#xff0c;并且包括这个运行的程序中占据的所有系统资源&#xff0c;比如说CPU&#xff08;寄存器&#xff09;&#xff0c;IO,内存&a…...

K8s手工创建kubeconfig

我们通过 kubectl 命令行连接 k8s apiserver 时需要依赖 kubeconfig 文件。 kubeconfig 文件通常包含了 context&#xff08;上下文&#xff09;列表&#xff0c;每个 context 又会引用 cluster 和 user&#xff0c;最后通过 current-context 指定当前 kubeconfig 使用哪个 con…...

【SQL开发实战技巧】系列(十七):时间类型操作(下):确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数

系列文章目录 【SQL开发实战技巧】系列&#xff08;一&#xff09;:关于SQL不得不说的那些事 【SQL开发实战技巧】系列&#xff08;二&#xff09;&#xff1a;简单单表查询 【SQL开发实战技巧】系列&#xff08;三&#xff09;&#xff1a;SQL排序的那些事 【SQL开发实战技巧…...

代码随想录算法训练营第二十八天 | 491.递增子序列,46.全排列,47.全排列 II

一、参考资料递增子序列题目链接/文章讲解&#xff1a;https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1EG4y1h78v 全排列题目链接/文章讲解&#xff1a;https://programmercarl.…...

使用 Three.js 后处理的粗略铅笔画效果

本文使用Three.js的后处理创建粗略的铅笔画效果。我们将完成创建自定义后处理渲染通道、在 WebGL中实现边缘检测、将法线缓冲区重新渲染到渲染目标以及使用生成和导入的纹理调整最终结果的步骤。翻译自Codrops&#xff0c;有改动。 Three.js 中的后处理 Three.js中的后处理是一…...

推荐一些不常见的搜索引擎

5.雅虎网来自 Yahoo.com 的屏幕截图&#xff0c;2023 年 2 月截至 2022 年 1 月&#xff0c;Yahoo.com&#xff08;Verizon Media&#xff09;的搜索市场份额为 11.2%。雅虎的优势在于多元化&#xff0c;除搜索外还提供电子邮件、新闻、金融等服务。二十多年来&#xff0c;雅虎…...

RabbitMQ工作模式

目录1.Work queues工作队列模式1.1 模式说明1.2 代码1.3 测试1.4 小结2.订阅模式类型3.Publish/Subscribe发布与订阅模式3.1 模式说明3.2 代码3.3 测试3.4 小结4.Routing路由模式4.1 模式说明4.2 代码4.3 测试4.4 小结5.Topics通配符模式5.1 模式说明5.2 代码5.3 测试5.4 小结6…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...