ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 비트 연산자 문제
    Algorithm with C/ETC 2020. 10. 17. 08:52

    문제

    비트 이동 연산을 이용하여 문자 4개를 받아서 하나의 unsigned int형의 변수 안에 저장하는 프로그램을 작성하라.

    첫 번째 문자는 unsigned int형 변수의 비트 0 부터 7 까지에 저장이 되고, 

    두 번째 문자는 비트 8부터 15 까지.

    세 번째 문자는 비트 16에서 비트 23까지

    네 번째 문자는 비트 24 부터 비트 31까지에 저장된다.

    결과로 생성되는 정수값은 16진수로 출력하도록 한다. 비트 이동 연산과 비트 OR연산을 사용하라.

     

    입력 

    첫 번째 문자:a

    두 번째 문자:b

    세 번째 무자:c

    네 번째 문자:d

     

    출력

    결과값: 64636261

     

    구현

    프로그램 실행결과

    소스 코드

    더보기
    #include <stdio.h>
    
    #define		MAX				4	//	문자 배열의 길이
    #define		BITS_PER_BYTE	8	//	1바이트 당 비트의 수(8비트)
    
    int main(void)
    {
    	int i;
    	unsigned int result = 0;
    	unsigned int temp;
    
    	char charArr[MAX] = {'a','b','c','d'};
    
    	for (i = 0; i < MAX; i++)
    	{
    		temp = charArr[i];
    		temp = (temp << i * BITS_PER_BYTE);
    		result |= temp;		//	OR 연산
    	}
    
    	printf("%x\n", result);
    
    	return 0;
    }

    'Algorithm with C > ETC' 카테고리의 다른 글

    요술 사각형  (0) 2020.10.27
    배열에 중복 없이 랜덤으로 숫자 저장하기  (0) 2020.10.20
    달팽이 배열  (0) 2020.09.21
    Matching System - 파티원 조직  (0) 2020.09.12
    통신 연구소  (0) 2020.09.09

    댓글

Designed by Tistory.