못정함
C언어) 2장 printf()함수 : 내가 모르는 거 위주로 본문
2장: 상수와 데이터 출력
02-1 C 프로그램의 구조와 데이터 출력 방법
<기본 형태 (main함수는 필수)>
#include <stdio.h> int main(void){ 본문 return 0; } |
<주석>
/* 어쩌굴 */
// 어쩌굴
<제어 문자 출력>
: 출력 방식에 영향을 주는 문자 / 문자열 안에 포함시켜 사용함 (문자는 아님)
- \ 와 함께 사용
\n : 다음 줄로 이동 (줄바꿈) | |
\b: 백스페이스 : 커서가 한 칸 왼쪽으로 이동 (\b 뒤에 다음 문자열을 입력하면 수정됨..) | ex) printf("Goot\bd\tchance\n"); 결과는 Good (tab) Chance |
\r: carriage return : 맨 앞으로 이동 (커서 위치가 맨 앞으로 이동) | |
\a : alert: 벨소리. 벨소리를 낸다.(????????????) |
|
<정수와 실수 출력>
-printf() 함수는 기본적으로 문자열을 출력. 숫자 출력하고 싶으면 "변환 문자"를 사용해줘야함 (숫자를 문자열로 변환해줌)
-정수) %d (decimal)
-실수) %lf (long float)
%.1lf ) 소수점 이하 첫째자리까지 출력 (둘째 자리에서 반올림
%.10lf) 소수점 이하 열째자리까지 출력
printf("변환문자", 숫자); | 숫자는 변환 문자의 위치에 출력됨. |
printf("%d와 %d의 합은 %d입니다.\n", 10, 20, 10+20); | 이런식으로 사용. ',' 뒤의 숫자들이 %d 자리에 순서대로 채워짐 |
02-2 상수와 데이터 표현 방법
-프로그램) 일의 순서를 적은 것 -데이터) 프로그램이 처리하는 대상 -data) 정수, 실수, 문자, 문자열 -data의 형태) 변수 / 상수 |
<정수 상수 표현법>
-C언어에서는 8진법, 10진법, 16진법 사용
(진법 내용은 교재 참고)
<표기법>
10진수 | 8진수 | 16진수 |
12 | 014 | 0xc |
-코드 안에서 진법에 따른 수의 표현법은 다르나, 같은 값이므로 결과는 모두 같음
printf("%d\n", 12);
printf("%d\n", 014);
printf("%d\n", 0xc);
모두 결과는 12
-출력을 다르게하고 싶으면
8진수 %o | printf("%o\n", 12); | |
16진수 소문자 %x | printf("%x\n", 014); | |
16진수 대문자 %X | printf("%X\n", 12); |
<실수 상수 표현법>
-소수점 / 지수
-소수점 형태를 지수로 바꾸어 표현
e는 밑수 10을 의미함. (E로도 쓸 수 있음)
0.0000314 = 3.14e-5 = 3.14E-5 ) 정규화 표기법임. 소수점 앞에 0이 아닌 유효 숫자 한 자리를 사용해 지수 형태로 바꾼 것. printf 함수가 실수를 지수형태로 출력할 때 기본적으로 사용하는 방법임.
-printf() 함수는 기본적으로 소수점 형태를 출력함
- 소수점 이하 여섯째 자리까지만 출력됨 ∴ 더 길게 출력하려면 %.7lf << 이런 식으로 써줘야함
-지수 형태로 출력 원할 시 변환 문자 사용 ) %le (정규표현법)
- %.2le ) 소수점 이하 자릿수 지정
printf("%le\n", 0.0000314);
|
3.140000e-005 |
printf("%.2le\n", 0.0000314); | 3.14e-005 |
<문자와 문자열 상수 표현법>
문자 | -한 글자 -' '로 묶는다 -문자 변환 문자) %c |
문자열 | -두 글자 이상 -" "로 묶는다 -문자열 변환 문자) %s (사실 필요 없음) |
-printf() 함수는 문자열을 변환 없이 바로 출력 가능 (문자는 변환 필요함)
printf("%c\n", 'A'); |
이론과 원리 약간
-편집기에 코드를 입력하면 코드는 모두 컴퓨터가 이해하는 형태의 아스키 코드 값으로 저장됨. + , 10, 20 이런 게 다 문자라는 소리임. 그래서 컴파일 과정이 없으면 코드가 컴퓨터에서 실행되지 않는 것임. 코드가 컴파일러를 거쳐 컴파일되어야 비로소 연산자는 명령어가 되고 상수는 연산이 가능한 형태로 바뀌는 것.
-컴퓨터는 모든 데이터를 비트(bit)로 변환함: 1비트는 0과 1. 2개의 값을 가짐
-비트가 8개면 1byte(바이트)라고 함. 2^8 = 256 가지
정수 상수를 컴파일하면 4바이트로 표현됨 (2^32 가지)
실수 상수를 컴파일하면 8바이트로 표현됨 (2^64 가지)
-값의 크기와 상관없이 데이터를 8바이트로 만들고 싶으면 LL 을 붙인다.
-실수는 주로 double 형식으로 쓴다. 8바이트, 즉 64비트로 표현한다. / / 표현할 수 있는 값의 범위가 상당히 넓어 값의 크기와 달리 정확한 값을 표현하는 데에는 한계가 있다. (오차 발생 이유: 소수 부분을 나타내는 비트가 정확한 값을 표현할 수 없기 때문)
~~~~~~~~~~~~~비트 관련된 내용은 공부 열심히 안 했다...^^;; 필요할 때 교재 참고하자 ^^;;; ~~~~~~~~~~~~~~~~~
암튼..비트...와 바이트..에 의해...어떤 상수를 쓰느냐에 따라 실행속도가 많이 차이난다는 것은 알겠음
정수를 사용하는 게 좋겠음
정수는 빠르고 정확하게 연산되지만, 실수는 오차가 발생할 수 있기 때문.
뭔가...나중에 프로그램을 효율적으로 만들겠다... <<이런 목표가 생기면(?) 공부하긴 해야할 것 같음
일단 쿨하게 패스한다...^^;;;;;한시가급하다
'C언어 공부 > C언어 독학 (교재)' 카테고리의 다른 글
C언어) 4-2장 : 그 외 유용한 연산자 (0) | 2024.09.15 |
---|---|
C언어) 4-1장: 산술, // 관계, 논리 연산자 (제어문에 사용) (0) | 2024.09.14 |
C언어) 3-2장: 데이터 입력 (0) | 2024.09.14 |
C언어) 3-1장 변수 : 내가 모르는 거 위주로 (0) | 2024.09.14 |
C언어) 공부 예정 (2) | 2024.09.14 |