개인 자료란 (JE)

  서버 커뮤니티

Profile asdfqwerty0123 대표칭호 없음
Profile

질문하기 C

C언어 비트연산자 질문입니다

2020.01.28 조회 수 119 추천 수 0
이해도 기타 

문제: NOT (~) 연산자를 사용하여 입력받은 값을 반전시켜라. 단, 부호 비트는 반전되면 안됨.


#include <stdio.h>

int main() {

unsigned char input;

scanf("%hhu", &input);

printf("%d ", input & 6);

printf("%d ", input | 6);

printf("%d ", input ^ 6);

printf("%d ", ~input);

return 0;

}


>  3

2 7 5 -4


예제에는-4 부분이 252라고 되어있는데 NOT 연산자로 부호 비트를 반전시키지 않는 것이 가능한가요?







2개의 댓글

0xIII
2020.01.28

3 (10)을 인버트하면 1111 1100 (2)입니다.

근데 문제는 이 2진수를 어떻게 바라보느냐죠.

 

질문자님께서는 8행 printf("%d ", ~input); 부분

출력 포맷 형식을 부호 있는 일반 정수(%d)로 입력하셨으므로 1111 1100 (2)의 최상위 비트는 부호비트가 되어

부호화 2의 보수법으로 -4가 출력됩니다.

 

252 (10)으로 출력을 원하시면 부호 없는 1바이트 정수(%hhu) 형식으로 printf("%hhu ", ~input);로 변경해주시면 됩니다.

asdfqwerty0123
2020.01.28
@0xIII

오옹 감사합니다

뉴스 및 창작물
/files/thumbnails/115/774/003/262x150.crop.jpg?20240424234825

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0

/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1

/files/thumbnails/932/765/003/262x150.crop.jpg?20240410124459

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

노트블럭전문가

2024-04-10

0