์๋ฃํ
- ํ๋ก๊ทธ๋จ์์ ์ ์ธ๋ ๋ณ์๋ค์ด ๊ธฐ์ต ๊ณต๊ฐ์์ ์ด๋ป๊ฒ ์ ์ฅ๋๊ณ ์ฒ๋ฆฌ๋์ด์ผ ํ ์ง, ์ปดํ์ผ๋ฌ์๊ฒ ์๋ ค์ค
- ์ข
๋ฅ
- ์ ์ํ
- ์ค์ํ
- ๋ฌธ์ํ
- ์ฌ์ฉ์ ์ ์ ์๋ฃํ
์ ์ํ
- ์์์ ์ด ์๋ ์ซ์
- ์์ ์ ์, 0 , ์์ ์ ์
์ค๋ฒํ๋ก์ฐ(overflow)
๋ฐ์ดํฐ ํ์ฉ ๋ฒ์๋ฅผ ๋๋ ๊ฐ์ ๋ณ์์ ์ ์ฅํ ๋, ์๋ํ ๊ฐ์ด ์๋ ๋ค๋ฅธ ๊ฐ์ด ์ ์ฅ๋๋ ๊ฒ
#include <stdio.h>
int main(void) {
short a = 32767, b=2, c;
unsigned short d;
c = a+b;
d = a+b;
printf("c = %d \n", c);
printf("d = %d \n", d);
return 0;
}
//ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> c = -32767
d = 32769
์ธ๋ํ๋ก์ฐ(underflow)
๋ฐ์ดํฐ ํ์ฉ ๋ฒ์๋ฅผ ๋๋ ๊ฐ์ ๋ณ์์ ์ ์ฅํ ๋, ์๋ํ ๊ฐ์ด ์๋ ๋ค๋ฅธ ๊ฐ์ด ์ ์ฅ๋๋ ๊ฒ
#include <stdio.h>
int main() {
short a = -32767, b = -2, c;
unsigned short d;
c = a+b;
d = a+ b;
printf("c = %d\n ", c);
printf("d = %d\n ", d);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> c = 32767
d = 32767
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
๋ฐ์ดํฐ ํํ ๋จ์
ํฌ๊ธฐ ๊ตฌํ๋ ํจ์
sizeof(์๋ฃํ)
#include <stdio.h>
int main() {
short x = 1;
int y = 2;
long z =3;
printf("short์ ํฌ๊ธฐ : %d ๋ฐ์ดํธ \n", sizeof(x));
printf("int์ ํฌ๊ธฐ : %d ๋ฐ์ดํธ \n", sizeof(y));
printf("long์ ํฌ๊ธฐ : %d ๋ฐ์ดํธ \n", sizeof(z));
printf("short์ ํฌ๊ธฐ : %d ๋ฐ์ดํธ \n", sizeof(short));
printf("int์ ํฌ๊ธฐ : %d ๋ฐ์ดํธ \n", sizeof(int));
printf("long์ ํฌ๊ธฐ : %d ๋ฐ์ดํธ \n", sizeof(long));
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> short์ ํฌ๊ธฐ : 2 ๋ฐ์ดํธ
int์ ํฌ๊ธฐ : 4 ๋ฐ์ดํธ
long์ ํฌ๊ธฐ : 8 ๋ฐ์ดํธ
short์ ํฌ๊ธฐ : 2 ๋ฐ์ดํธ
int์ ํฌ๊ธฐ : 4 ๋ฐ์ดํธ
long์ ํฌ๊ธฐ : 8 ๋ฐ์ดํธ
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
์ค์ํ
์์์ ์ด๋ ์ง์๊ฐ ์๋ ์
float a = 3.14f
/* ๋ค์ ๋ถ๋ f๋ ์์๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ๋งํ๋ค.
์์ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ 4๋ฐ์ดํธ๋ก ๊ฒฐ์ ํด ๋ฌ๋ผ๋ ์๋ฏธ.
a๋ ์์ float๋ฅผ ์ผ๊ธฐ ๋๋ฌธ์ 4๋ฐ์ดํธ์ ๋ฐฉ์ด ์ด๋ฏธ ํ ๋น๋์ด ์๋ค. */
float a = 3.14
/* ๋ค์ f๋ฅผ ์์ผ๊ณ ,์ค์ํ์ด๊ธฐ ๋๋ฌธ์ ์์๋ฉ๋ชจ๋ฆฌ๋ 8๋ฐ์ดํธ๊ฐ ํ์ฑ๋๋ค
์ฌ๊ธฐ์ 4๋ฐ์ดํธ์ธ a์ ๋ฃ๊ฒ๋๋ฉด ์งค๋ฆด์๋ ์๋ค.
๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฌ๋ค.*/
// L์ ๋กฑ๋๋ธ๋ก ์์๋ฉ๋ชจ๋ฆฌ ํ ๋น
#include <stdio.h>
int main() {
float x = 1.1f;
double y = 2.2;
long double z = 3.3L;
printf("float x = %f\n", x);
printf("double y = %f\n", y);
printf("long double z = %lf\n", z);
return 0;
}
//ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> float x = 1.100000
double y = 2.200000
long double z = 0.000000
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
์์ ๋ฌธ์
- %f : float, double์ธ ๊ฒฝ์ฐ
- %lf : long double
%6.1f // ์ถ๋ ฅํญ 6์นธ, ์ค๋ฅธ์ชฝ ์ ๋ น, ์์์ 1์๋ฆฌ๊น์ง
#include <stdio.h>
int main() {
int a = 20;
float b = 5.06f;
float c = 1234567.89f;
printf("0)%d\n", 123456);
printf("1)%d\n", a);
printf("2)%6d\n", a);
printf("3)%+6d\n", a);
printf("4)%-6d\n", a);
printf("1)%f\n", b);
printf("2)%6.1f\n", b);
printf("3)%+6.1f\n", b);
printf("4)%-6.1f\n", b);
printf("5)%6.1f\n", c);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> 0)123456
1)20
2) 20
3) +20
4)20
1)5.060000
2) 5.1
3) +5.1
4)5.1
5)1234567.9
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
๋ฌธ์ํ
- char : ๋ฌธ์ํ์ ๋ค๋ฃจ๋ ์๋ฃํ
- ๋ฌธ์ 1๊ฐ๋ฅผ ์์ ๋ฐ์ดํ (โ)์ฌ์ด์ ๋ฃ์ด์ ์ฌ์ฉ
- ์์ ๋ฐ์ดํ ์์ ์๋ ๋ฌธ์๋ฅผ ๋ฐ์ดํฐ 1๊ฐ๋ก ์ทจ๊ธํจ
- ์ฌ์ฉ๋๋ ๋ฌธ์๋ 8๋นํธ(1๋ฐ์ดํธ)๋ก ์ฒ๋ฆฌ๋จ
- ๋ด๋ถ์ ์ธ ๋ฌธ์ ์ฝ๋ (์์คํค ์ฝ๋) ์ ์์ํ๋ ์ซ์๋ก ๋ฐ๋
- unsigned int์ ์ ์ฅ๋จ
์์คํค ์ฝ๋ ํ
#include <stdio.h>
int main() {
printf("์๋ฌธ์ a์ ASCII ๊ฐ์ %d์ด๋ค.\n", 'a');
printf("์๋ฌธ์ b์ ASCII ๊ฐ์ %d์ด๋ค.\n", 'b');
printf("์๋ฌธ์ A์ ASCII ๊ฐ์ %d์ด๋ค.\n", 'A');
printf("์๋ฌธ์ B์ ASCII ๊ฐ์ %d์ด๋ค.\n\n", 'B');
printf("ASCII 97์ %c์ด๋ค.\n", 97);
printf("ASCII 98์ %c์ด๋ค.\n", 98);
printf("ASCII 65์ %c์ด๋ค.\n", 65);
printf("ASCII 66์ %c์ด๋ค.\n", 66);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> ์๋ฌธ์ a์ ASCII ๊ฐ์ 97์ด๋ค.
์๋ฌธ์ b์ ASCII ๊ฐ์ 98์ด๋ค.
์๋ฌธ์ A์ ASCII ๊ฐ์ 65์ด๋ค.
์๋ฌธ์ B์ ASCII ๊ฐ์ 66์ด๋ค.
ASCII 97์ a์ด๋ค.
ASCII 98์ b์ด๋ค.
ASCII 65์ A์ด๋ค.
ASCII 66์ B์ด๋ค.
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
#include <stdio.h>
int main() {
char a ='A';
char b = 'B';
printf("๋ณ์ a๋ %c๋ก ๊ฐ์ด %d๋ค.\n", a, a);
printf("๋ณ์ b๋ %c๋ก ๊ฐ์ด %d๋ค.\n", b, b);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> ๋ณ์ a๋ A๋ก ๊ฐ์ด 65๋ค.
๋ณ์ b๋ B๋ก ๊ฐ์ด 66๋ค.
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
#include <stdio.h>
int main() {
char a = 65;
char b = 66;
printf("๋ณ์ a๋ %c๋ก ๊ฐ์ด %d๋ค.\n", a, a);
printf("๋ณ์ b๋ %c๋ก ๊ฐ์ด %d๋ค.\n", b, b);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> ๋ณ์ a๋ A๋ก ๊ฐ์ด 65๋ค.
๋ณ์ b๋ B๋ก ๊ฐ์ด 66๋ค.
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
- small a(97), large A(65)๋ง ์๊ณ ์์ผ๋ฉด ๋๋ค.
์์์ง์ ์
char a = 'A' // ์์๋ฐ์ดํ ์ฌ์ฉํด์ผํจ
printf("๋ณ์ a๋ %c๋ก ๊ฐ์ด %d๋ค. \n", a, a)
// ๊ฒฐ๊ณผ
// ๋ณ์ a๋ A๋ก ๊ฐ์ด 65๋ค.
// %c๋ก ํ ๊ฒฝ์ฐ ์์คํค์ฝ๋์ ์์ํ๋ ๋ฌธ์ ์ถ๋ ฅ
// %d ์ธ ๊ฒฝ์ฐ ์ค์ ์ ์ ๊ฐ ์ถ๋ ฅ
char a = 'A' + 1 // ์์๋ฐ์ดํ ์ฌ์ฉํด์ผํจ
printf("๋ณ์ a๋ %c๋ก ๊ฐ์ด %d๋ค. \n", a, a)
// ๊ฒฐ๊ณผ
// ๋ณ์ a๋ A๋ก ๊ฐ์ด 66๋ค.
```c
#include <stdio.h>
int main() {
char a = 'A' + 1;
char b = 'B' + 1;
printf("๋ณ์ a๋ %c๋ก ๊ฐ์ด %d๋ค.\n", a, a);
printf("๋ณ์ b๋ %c๋ก ๊ฐ์ด %d๋ค.\n", b, b);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> ๋ณ์ a๋ B๋ก ๊ฐ์ด 66๋ค.
๋ณ์ b๋ C๋ก ๊ฐ์ด 67๋ค.
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
ํ๋ณํ
๋ฌต์์ ํ๋ณํ
- ํ๋์ ์๋ฃํ์ ๋ค๋ฅธ ์๋ฃํ์ผ๋ก ๋ณํ์์ผ ์๋ฃํ์ ๊ฐ๊ฒ ํ๋ ๊ฒ
- ๋ณ์ 2๊ฐ๋ก ์ฐ์ฐ์ ์ํํ ๊ฒฝ์ฐ ์ฌ์ฉํจ
- ์์๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ๋์ ๋ ๋ณ์๋ฅผ ํ์ธํ๊ณ , ๋ ํฐ ์งํฉ์ ์ํ๋ ์๋ฃํ์ผ๋ก ์์๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํจ
#include <stdio.h>
int main() {
int a = 10;
float b = 20.07f, c;
c = a + b;
printf("c = %f \n", c);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> c = 30.070000
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
๋ช ์์ ํ๋ณํ
- ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ก ํ๋ณํ ์ํค๋ ๊ฒ
- ์บ์คํ ์ฐ์ฐ์ ์ฌ์ฉ
- ์ฐ์ฐ์ ์์ ํ๋ณํ ์ฐ์ฐ์()๋ฅผ ๋ถ์ด๊ณ ()์์๋ ๋ณํ์ํค๋ ค๋ ์๋ฃํ
float a = 20.07f;
printf("a = %d \n", (int)a)
#include <stdio.h>
int main() {
float a = 20.07f;
printf("a = %d\n", a);
printf("a = %d\n", (int)a);
return 0;
}
// ํ๋ก์ธ์ค๊ฐ ์์๋์์ต๋๋ค..
> a = 1751745880
a = 20
ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.