-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathByteUShift.java
More file actions
24 lines (21 loc) · 1.08 KB
/
Copy pathByteUShift.java
File metadata and controls
24 lines (21 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*************************************************************************
# File Name: ByteUShift.java
# Author:
# Mail:
# Created Time: 2016年11月12日 星期六 10时05分17秒
************************************************************************/
public class ByteUShift{
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 = (byte) 0xf1;
byte c = (byte) ( b >> 4 );
byte d = (byte) ( b >>> 4 );
byte e = (byte) ( ( b & 0xff )>>4 );//将b截断为一个八位的Byte
//因为以为运算符会自动提升类型到int,因此首先将高位截断为0
System.out.println(" b = 0x"+hex[(b >> 4) & 0x0f] + hex[b & 0x0f]);//(b>>4)&0x0f:求高位,b & 0x0f:求地位
System.out.println(" b >> 4 = 0x"+hex[(c >> 4) & 0x0f]+hex[c & 0x0f]);
System.out.println(" b >>> 4 = 0x"+hex[(d >> 4) & 0x0f]+hex[d & 0x0f]);
System.out.println(" (b & 0xff) >> 4 = 0x"+hex[(e >> 4) & 0x0f]+hex[e & 0x0f]);
}
}