CS/깨알c언어
2023.02.21 깨알c언어
amungstudy
2023. 2. 21. 16:40
[출력형식]
- %d : 부호 있는 10진수 출력 (데이터 타입: 정수,문자)
- 16진수 : 2진수로 바꿔서 4개씩 자름, 8 4 2 1 / 8 4 2 1
- ex) 34를 16진수로 바꾸기 0 0 1 0 0 0 1 0 -> 22
- 8진수는 2진수로 바꿔서 3개씩 자름. 8 진수 42
- %3.1f 는 반올림 하는데 int로 정수변환할때는 반올림 안함
%o : 8진수 %0x: 16진수
[진법변환]
8진수 : 4 2 1 / 4 2 1
ex>10진수 19는 2진수 10011 8진수 23 16진수 13
[비트연산]
& : AND 두개 다 참이어야 참 5&3 : 0101 0011 = 0001 값:1이다.
l : OR 둘중에 하나만 참이면 참 5 I 3 : -> 111 값은 7이다.
^ : XOR 둘이 반대여야 참이다. 5^3 -> 0110 -> 값은 6이다.
EX) 2진수 10진수
0x11 0001 0001 => 17
0x0f 0000 1111
&연산 0000 0001 => 1
I연산 0001 1111 => 31
*시프트연산 (>>)
10>>2 =>2진수로 바꾸고 민다. 1010우측으로두개밀기 => 0010 => 2이다
좌시프트 <<
10<<2 1010에 00붙여주게된다. 101000 => 40이다
[매크로]
#define N 10
#define SQR(X) X*X
SQR(N); 100이다
SQR(N+2); 10+2*10+2 => 32이다
매크로일때만 이렇게 연산한다.
[삼항연산자]
삼항연산자 구조 : 조건?참:거짓
ex)int a,b;
a=20;
b=(a>20)?a+a:a*a;
printf("b=%d\n",b)
=> b=40