-
비트 연산자 문제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