Java BigInteger 0x00 Trim
BigInteger.toByteArray()를 하면 최상위 비트가 1일때는 앞에 0x00이 붙게 된다.
아래 Java Doc BigInteger 참고.
어떤 이유로 이 0x00을 잘라서 사용해야 할 때가 있다.
아래 코드로 trim 해보자.
아래 Java Doc BigInteger 참고.
The array will contain the minimum number of bytes required to represent this BigInteger, including at least one sign bit, which is (ceil((this.bitLength() + 1)/8))
.
어떤 이유로 이 0x00을 잘라서 사용해야 할 때가 있다.
아래 코드로 trim 해보자.
private byte[] trimMostSignificantZero(byte[] bytes) { if (bytes[0] == 0) { byte[] trimed = new byte[bytes.length - 1]; System.arraycopy(bytes, 1, trimed, 0, trimed.length); return trimed; } return bytes; }
댓글
댓글 쓰기