字符类型是整型类型的一种,将其转换成int类型,然后再输出十六进制形式即可。下面是一个示例程序。
#include <iostream>using namespace std
int main()
{
char str_test[] = "hello world\n"
int limit = strlen(str_test)
for (int inx=0 inx!=limit ++inx)
//用static_cast将字符类型转成int类型
cout<<str_test[inx]<<"---hex:"<<hex<<static_cast<int>(str_test[inx])<<"\t"
cout<<endl
return 0
}
程序执行结果:
一.根据byte的二进制值,分别取高低的四位转换成16进制字符String str = "我"
byte[] ba
try {
ba = str.getBytes("UTF-16")
char[] ca = "0123456789abcdef".toCharArray()
StringBuffer sb
for (byte b : ba) {
sb = new StringBuffer()
int bi = (b &0xf0) >>4
sb.append(ca[bi])
int bi2 = b &0x0f
sb.append(ca[bi2])
System.out.println(sb)
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace()
}
二.直接调用Integer.toHexString()方法,然后再截取后两位
String strSource = "我"
try {
byte[] ba = strSource.getBytes("UTF-16")
String str//
for (byte b : ba) {
if (b == 0) {
str = "0x00"
} else if (b == -1) {
str = "0xFF"
} else {
// 将int类型数字转换成‘16进制’格式的字符串
str = Integer.toHexString(b).toUpperCase()
if (str.length() >2) {// 此时为‘负数’
// 截取‘16进制格式字符串’的最后两位字符
str = str.substring(str.length() - 2)
}
str = "0x" + str
}
System.out.println(str)
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)