본문 바로가기

C,C++

콜라한캔 :: 16진수 문자열로 변환

<stdint.h>


정확한 크기의 자료형을 제공해주는 헤더


int8_t, uint8_t        8비트 자료형

int16_t, uint16_t    16비트 자료형

int32_t, uint32_t    32비트 자료형

int64_t, uint64_t    64비트 자료형


최소 크기의 자료형


int_least8_t, uint_least8_t        8비트

int_least16_t, uint_least16_t    16비트

int_least32_t, uint_least32_t    32비트

int_least64_t, uint_least64_t    64비트


빠른 최소 크기의 정수형 자료형


int_fast8_tuint_fast8_t - 8비트 빠른 동작 최소 크기 정수형.

int_fast16_tuint_fast16_t - 16비트 빠른 동작 최소 크기 정수형.

int_fast32_tuint_fast32_t - 32비트 빠른 동작 최소 크기 정수형.

int_fast64_tuint_fast64_t - 64비트 빠른 동작 최소 크기 정수형.


객체의 주소를 나타내는 자료형


intptr_t - 부호 있는 주소 자료형

uintptr_t - 부호 없는 주소 자료형


#include <stdio.h>
#include <stdint.h> 

void bin16(uint16_t num, char* bitStr)
{
	int i;
	
	for(i=0; i<15; ++i)	
	{
		bitStr[i] = (num >> (15 - i) & 0x0001) + '0';
	}
}

int main()
{
	uint16_t num = 0x0040;
	uint16_t res;
	char bitStr[17] = {0};

	bin16(num, bitStr);
	printf("%s (%#06X)\n", bitStr, num);
	
	res = num >> 1;
	bin16(res, bitStr);
	printf("%s (%#06X)\n", bitStr, res);
	
	res = num >> 2;
	bin16(res, bitStr);
	printf("%s (%#06X)\n", bitStr, res);
	
	res = num >> 3;
	bin16(res, bitStr);
	printf("%s (%#06X)\n", bitStr, res);
	
	return 0;
}




'C,C++' 카테고리의 다른 글

fseek과 ftell로 파일의 크기 알아보기  (0) 2018.12.26
C++ lower_bound, upper_bound  (0) 2018.12.26
void 포인터  (0) 2018.12.12
new, delete  (0) 2018.12.09
Reference  (0) 2018.12.09