字节数组是什么?Byte[]

您所在的位置:网站首页 java字节数组赋值 字节数组是什么?Byte[]

字节数组是什么?Byte[]

2023-01-01 06:45| 来源: 网络整理| 查看: 265

字节数组是什么?Byte[]问题描述

在今天的一次讨论中,遇到了一个需求,Go语言程序,但是我不会Go语言,所以以下内容用Java语言来说明。

问题描述如下:

把一串16进制数字写成字符串的形式,例如"ac23ab4589ad3678",需要把它转换成这一串16进制数字对应的字符串。

这里我们想到把16进制字符串先转换成byte[]数组,然后把byte数组中的内一个个转换成相应的字符就可以了。几经尝试,终于使用Go语言实现了,虽然最后的程序和思路非常简单,但是这个过程值得记录一下。

字节是什么?

字节,Byte,百度说:"字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。"

在ASCII中,一个英文字母占一个字节的空间,一个中文汉字占两个字节的空间。英文标点占一个字节,中文标点占两个字节。

对于我们的需求来说,十六进制是0-F的符号,所以一个Byte数组中的元素对应一个ASCII码,也就是两个16进制数字。

C++中我们知道byte的范围是0-255的整数,小于int的范围,其实它就是一个数字而已,输出的时候,如果为字符格式,就是对应的ASCII码值,如果是数字格式,就是对应格式的数字。

Java怎么做?

所以,如果想要得到一个十六进制字符串对应的ASCII字符串,只需要把对应的byte数组逐个输出成字符形式即可。

以下是Demo代码:

private static final String HexStr = "0123456789abcdef"; private static int toByte(char c){ byte b = (byte) HexStr.indexOf(c); return b; } public static byte[] hexToByteArr(String hexStr){ int len = (hexStr.length() / 2); byte[] result = new byte[len]; char[] achar = hexStr.toCharArray(); for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3