10진수를 2진수로 출력하는 소스[질문추가]
Loseless
2023.04.01
(num&(0x80000000i))==(0x80000000i) 부분을 모르겟어요.. 자세히 설명좀(num&(0x80000000i))==(0x80000000i) 부분질문 내용 :
#include stdio.h
int main(void){
int num, i;
unsigned int temp=0x80000000;
printf(10진수 정수를 입력하라:);
scanf(%d,&num);
for(i=0;i(sizeof(int)*8);i++){
((num&(tempi))==(tempi))? printf(1) : printf(0);
}
return 0;
}
여기서((num&(tempi))==(tempi)) 부분을 잘 모르겟네요..
어째서 num&(temp i) 을 하면.. 재대로 2진수가 되는지.
소스 분석좀 해주세요. 비트연산자에대해 너무얕게 알다보니 ㅠ..
추가 질문
unsigned int a=2147483648; 을 하면 왜
printf(%d\n, (a0)); 을 하면, -2147483648 이라고 나오는거죠?
분명 unsigned로 인해서 4294967295 까지 쓸수있을텐데요?