-
Notifications
You must be signed in to change notification settings - Fork 7
bswap(3)
Seonghun Lim edited this page Oct 13, 2019
·
3 revisions
bswap_16, bswap_32, bswap_64 - 바이트 순서 뒤집기
#include <byteswap.h>
bswap_16(x);
bswap_32(x);
bswap_64(x);
이 매크로들은 각각의 2바이트, 4바이트, 8바이트 인자의 바이트 순서를 뒤집은 값을 반환한다.
이 매크로들은 인자의 바이트들을 뒤집은 값을 반환한다.
이 매크로들은 항상 성공한다.
이 매크로들은 GNU 확장이다.
아래 프로그램에서는 명령행 인자로 받은 8바이트 정수의 바이트들을 뒤집는다. 다음 셸 세션이 프로그램 사용 방식을 보여 준다.
$ ./a.out 0x0123456789abcdef
0x123456789abcdef ==> 0xefcdab8967452301
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <inttypes.h>
#include <byteswap.h>
int
main(int argc, char *argv[])
{
uint64_t x;
if (argc != 2) {
fprintf(stderr, "Usage: %s <num>\n", argv[0]);
exit(EXIT_FAILURE);
}
x = strtoul(argv[1], NULL, 0);
printf("0x%" PRIx64 " ==> 0x%" PRIx64 "\n", x, bswap_64(x));
exit(EXIT_SUCCESS);
}
2019-03-06