String转16进制byte
时间: 2023-10-17 16:24:42 浏览: 78
将字符串转换为16进制的byte数组可以使用如下代码:
```java
public static byte[] hexStringToByteArray(String hex) {
int len = hex.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
+ Character.digit(hex.charAt(i+1), 16));
}
return data;
}
```
其中,参数`hex`是要转换的16进制字符串。这个方法将字符串拆分成2个字符一组,将每个字符解析成16进制数字,然后将它们合并成一个字节。最后,将所有字节放入一个字节数组中并返回。
相关问题
C# int转16进制byte
可以使用以下代码将C#中的int类型转换为16进制byte类型:
```csharp
int intValue = 255;
byte[] hexValue = BitConverter.GetBytes(intValue);
Array.Reverse(hexValue); // reverse the byte order if necessary
string hexString = BitConverter.ToString(hexValue).Replace("-", "");
```
在上面的代码中,我们首先将int类型的值存储在intValue变量中。然后,我们使用BitConverter.GetBytes方法将intValue转换为byte数组。由于这个方法返回的是一个小端字节序的数组,我们使用Array.Reverse方法将其反转以获取正确的字节顺序。最后,我们使用BitConverter.ToString方法将byte数组转换为16进制字符串,并使用Replace方法删除其中的横线字符。
字符串转16进制byte数组
以下是两种字符串转16进制字节数组的方法:
1. Java方法:
```java
public byte[] hexStrToBytes(String hexStr){
int len = hexStr.length()/2;
byte[] bytes = new byte[len];
char[] chars = hexStr.toCharArray();
for(int i=0;i<len;i++){
bytes[i] = (toByte(chars[i])<<4) | toByte(chars[i*2]);
}
return bytes;
}
public byte toByte(char c){
byte b = "0123456789ABCDEF".indexOf(c);
return b;
}
```
2. C#方法:
```csharp
private byte[] StringToHexByteArray(string message, Encoding encode) {
byte[] bytes = encode.GetBytes(message);
byte[] result = new byte[bytes.Length];
for (int i = 0; i < bytes.Length; i++) {
result[i] = Convert.ToByte(Convert.ToString(bytes[i], 16));
}
return result;
}
```
阅读全文