@bitReverse
@bitReverse
정수 안에 든 비트 순서를 그대로 뒤집어 주는 내장 함수라고 보면 돼요. 값을 새로 계산하는 게 아니라, 비트 패턴 자체를 반전한다는 점이 핵심이에요. 부호 비트까지 포함해서 뒤집기 때문에, 적용 대상이 부호 있는 정수면 결과도 부호가 바뀔 수 있어요.
본문
@bitReverse(integer: anytype) T
@TypeOf(anytype)는 모든 정수 타입 또는 정수 벡터 타입을 받아들여요.
정수 값의 비트 패턴을 뒤집어요. 해당 사항이 있으면 부호 비트도 포함해서요.
예를 들면 0b10110110(u8 = 182, i8 = -74)은 0b01101101(u8 = 109, i8 = 109)이 돼요.
더 알아보기
- 비트를 뒤집는 연산이 왜 필요한지는 주로 네트워크 바이트 오더나 해시·암호화 구현에서 만나게 돼요. 그런 곳에서 bit reversal이 자주 등장하죠.
- 부호 있는 정수에서 부호 비트까지 뒤집히는 동작에 유의하세요.
u8에서는 값이 그대로 보존되는 것처럼 보여도,i8에서는 부호가 뒤집히며 숫자가 달라질 수 있어요. 위 예시만 봐도182와-74가 같은 비트에서 나왔다는 걸 알 수 있죠.