■ byte배열(물론 사이즈는 4)을 int로 바꾸는 메소드
1
2
3
4
5
6
7
8
| public static int byte2Int( byte [] src) { int s1 = src[ 0 ] & 0xFF ; int s2 = src[ 1 ] & 0xFF ; int s3 = src[ 2 ] & 0xFF ; int s4 = src[ 3 ] & 0xFF ; return ((s1 << 24 ) + (s2 << 16 ) + (s3 << 8 ) + (s4 << 0 )); } |
■ long을 byte배열(물론 사이즈는 8)로 바꾸는 메소드
1
2
3
4
5
6
7
8
9
10
11
12
13
| public static byte [] long2Bytes( long l) { byte [] buf = new byte [ 8 ]; buf[ 0 ] = ( byte )( (l >>> 56 ) & 0xFF ); buf[ 1 ] = ( byte )( (l >>> 48 ) & 0xFF ); buf[ 2 ] = ( byte )( (l >>> 40 ) & 0xFF ); buf[ 3 ] = ( byte )( (l >>> 32 ) & 0xFF ); buf[ 4 ] = ( byte )( (l >>> 24 ) & 0xFF ); buf[ 5 ] = ( byte )( (l >>> 16 ) & 0xFF ); buf[ 6 ] = ( byte )( (l >>> 8 ) & 0xFF ); buf[ 7 ] = ( byte )( (l >>> 0 ) & 0xFF ); return buf; } |
■ 이건 또 다른 방식입니다. 위에 것이랑 거의 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| byte [] intToByte = new byte [ 4 ]; int a = 132 ; System.out.println( "int를 byte 배열로 바꾼다." ); intToByte[ 0 ] |= ( byte )((a& 0xFF000000 )>> 24 ); intToByte[ 1 ] |= ( byte )((a& 0xFF0000 )>> 16 ); intToByte[ 2 ] |= ( byte )((a& 0xFF00 )>> 8 ); intToByte[ 3 ] |= ( byte )(a& 0xFF ); System.out.println( "byte 배열을 int로 바꾼다" ); int result = 0 ; result |= (intToByte[ 0 ] & ( int ) 0xFF )<< 24 ; result |= (intToByte[ 1 ] & ( int ) 0xFF )<< 16 ; result |= (intToByte[ 2 ] & ( int ) 0xFF )<< 8 ; result |= (intToByte[ 3 ] & ( int ) 0xFF ); System.out.println( "byte To Int is " + result ); |
■ 16진수(Hex)로 된 Byte[] -> int로 변환하는 함수
1
2
3
4
5
6
7
8
9
10
11
12
| byte [] hexbyte = new byte [ 3 ]; StringBuffer sb = new StringBufffer(hexbyte.length * 2 ); String hexaDecimal; for ( int x = 0 ; x < hexbyte.length; x++) { hexaDecimal = "0" + Intege.toHexString( 0xff & hexbyte[x]); sb.append(hexaDecimal.substring(hexaDecimal.length()- 2 )); } int decimal = Integer.parseInt(sb.toString(), 16 ); |
댓글 없음:
댓글 쓰기