为了显示一个byte型的单字节十六进制(两位十六进制表示)的编码,请使用:
Integer.toHexString((byteVar & 0x000000FF) | 0xFFFFFF00).substring(6)
byteVar & 0x000000FF的作用是,如果byteVar 是负数,则会清除前面24个零,正的byte整型不受影响。(...) | 0xFFFFFF00的作用是,如果byteVar 是正数,则置前24位为一,这样toHexString输出一个小于等于15的byte整型的十六进制时,倒数第二位为零且不会被丢弃,这样可以通过substring方法进行截取最后两位即可。
- import junit.framework.TestCase;
-
- public class Hex extends TestCase {
-
- public void testPositiveIntToHex() {
-
- System.out.println(Integer.toHexString(2));
- System.out.println(Integer.toHexString(15));
- System.out.println(Integer.toHexString(16));
- System.out.println(Integer.valueOf("F", 16));
- }
-
-
-
-
-
-
- public void testNegativeIntToHex() {
-
- System.out.println(Integer.toHexString(-2).toUpperCase());
-
-
- System.out.println(Integer.toHexString(-2 & 0xFF).toUpperCase());
- System.out.println(Integer.toHexString(-2 & 0x000000FF).toUpperCase());
-
-
- System.out.println(Integer.valueOf("FE", 16));
-
- System.out.println(Integer.valueOf("-2", 16));
-
-
-
- System.out.println(Integer.valueOf("-FE", 16));
-
-
-
-
- System.out.println(Integer.valueOf("-80", 16));
-
-
-
-
-
- System.out.println(Integer.valueOf("7fffffff", 16));
-
-
- System.out.println(Integer.valueOf("-80000000", 16));
-
-
-
-
- System.out.println(0xFE);
- System.out.println(-0xFE);
-
- System.out.println(0x80000000);
- }
-
- public void testNegativeIntToBin() {
- System.out.println(Integer.toBinaryString(-2));
-
- System.out.println(Integer.toBinaryString(-2 & 0xFF));
- System.out.println(Integer.toBinaryString(-2 & 0x000000FF));
-
-
- System.out.println(Integer.valueOf("1111111111111111111111111111111", 2));
-
-
- System.out.println(Integer.valueOf("-10000000000000000000000000000000", 2));
- System.out.println(Integer.valueOf("11111110", 2));
- System.out.println(Integer.valueOf("-11111110", 2));
-
-
-
-
- System.out.println(010);
- System.out.println(10);
- }
-
- public void testByteToHex() {
-
- byte negativeByte = -2;
- byte positiveByte = 2;
-
-
-
-
-
- System.out.println(Integer.toHexString(negativeByte).toUpperCase());
-
-
-
-
-
-
-
-
-
- System.out.println(Integer.toHexString(negativeByte & 0xFF).toUpperCase());
-
-
- System.out.println(Integer.toHexString((negativeByte & 0x000000ff) | 0xffffff00)
- .substring(6).toUpperCase());
- System.out.println(Integer.toHexString((positiveByte & 0x000000ff) | 0xffffff00)
- .substring(6).toUpperCase());
- }
-
-
-
-
- public void testBiteMathematical() {
- System.out.println(0x8000000000000000L);
- System.out.println((int) 0x8000000000000000L);
- System.out.println(0x8000000000000010L);
- System.out.println(0x80000000);
- System.out.println(0x80000010);
-
-
- System.out.println(0x00000010 | 0x8000000000000000L);
-
- System.out.println(0x0010 | 0x80000000);
- }
- }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。