byte 转 16进制输出

public class Test {

	public static void main(String[] args) {
		char hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a',
				'b', 'c', 'd', 'e', 'f' };
		byte b = -1;
		System.out.println("b = 0x" + hex[(b >> 4) & 0x0f] + hex[b & 0x0f]);
	}

}
"b = 0x" + hex[(b >> 4) & 0x0f] + hex[b & 0x0f]

在右移时不保留符号:

右移后的值与0x0f进行按位与运算,这样可以舍弃任何的符号位扩展,以便得到的值可以作为定义数组的下标,从而得到对应数组元素代表的十六进制字符。

时间: 2024-10-05 05:07:13

byte 转 16进制输出的相关文章

0x%02x 字符型的16进制输出

问题:将一个字符类型按16进制输出,输出格式为0xab, 0x后面要求是2位,不够2位则补0,比如“0x0b”. 常见的错误做法是: #include <stdio.h> int main() { char a = 0x41; // a = 'A' printf( "the hex value of a is 0x%02x\n", a ); return 0; } 如果a = 0xf1,上面的输出将是 0xfffffff1 而不是 0xf1. 究其原因,%x 是 unsig

C# byte[] 转换16进制字符串

1.byte[] 转换16进制字符串 1.1 BitConverter方式 1 var str = DateTime.Now.ToString(); 2 var encode = Encoding.UTF8; 3 var bytes = encode.GetBytes(str); 4 var hex = BitConverter.ToString(bytes, 0).Replace("-", string.Empty).ToLower(); 5 Console.WriteLine(he

java中byte[] 和16进制字符串互转

//将byte[]转换为16进制字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b != null && n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) hs.append(

Java中byte与16进制字符串的互相转换

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

Java中byte与16进制字符串的互相转换(转)

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

Golang中的[]byte与16进制(String)之间相互转换

[]byte -> String(16进制) 1 src := []byte("Hello") 2 encodedStr := hex.EncodeToString(src) 3 // 注意"Hello"与"encodedStr"不相等,encodedStr是用字符串来表示16进制 String -> []byte 1 test, _ := hex.DecodeString(encodedStr) 2 fmt.Println(byte

byte数组转16进制 输出到文件

try { File file = new File(Environment.getExternalStorageDirectory(),"shuju2"); if(!file.exists()){ file.createNewFile(); } FileWriter fw = new FileWriter(file); BufferedWriter out = new BufferedWriter(fw); out.write(toHexString1(bytes)); out.cl

2、8、10、16进制输出

#include <stdio.h>#include <stdlib.h>typedef short type;  //进行二进制转换的数据类型 /*********************************************************************************  Description:本函数实现 将type类型的数据以二进制形式输出*   Input Args:待输出的原始数据* Return Value:void********

float用16进制输出

1 int main() 2 { 3 union{ 4 float a; 5 unsigned b; 6 } ha; 7 ha.a = 2147483647; 8 printf("%x\n",ha.b); 9 return 0; 10 } 使用union就完事了 原文地址:https://www.cnblogs.com/zhengbao/p/11824859.html