매일공부

1월 18일 간단한 코드 연습과 서식/연산자 본문

임베디드 개발자/코딩

1월 18일 간단한 코드 연습과 서식/연산자

임베디드초보자 2022. 1. 19. 13:58

1. 함수의 대표적인 서식

서식 서식값의 예 설명
%d, %x, %o 10,100,1234 정수(10진수),정수(16진수),정수(8진수)
%f or %ff 0.5, 1.0 , 3,14 실수(소수점이 있는 수)
%c 'a', 'b', 'f' 문자(한글자이며 ' '로 둘러싸야한다.)
%s "안녕", "abcdert" 문자열(한 글자 이상이며ㅑ " "로 둘러싸야 한다.)

 

2. C의 다양한 서식 (정수 자료형)

데이터 형식 의미 크기 값의 범위
short 작은 정수형 2byte -2^15 ~ 2^15 - 1
unsigned short 부호 없는 작은 정수형 2byte 0 ~ 2^16 - 1
int 정수형 4byte -2^31 ~ 2^31 - 1
unsigned int 부호 없는 정수형 4byte 0~ 2^32 - 1
long int(or long) 큰 정수형 4byte -2^31 ~ 2^31 - 1
unsigned long 부호 없는 큰 정수형 4byte 0 ~ 2^32 - 1
long long 엄청 큰 ? 정수형? 8byte -2^63 ~ 2^63 - 1
char 문자형 1byte -2^7 ~ 2^7 - 1
unsigned char 부호 없는 문자형 1byte 0 ~ 2^8 - 1
  • 신기하게도 char은 정수형 자료형중 하나이다.> 작은 숫자를 적은 크기로 사용할 때 적합하다(ex: 사람의 나이)
  • 당연한 이야기지만 항상 int를 사용하는 것보다 원하는 변수에 맞는 자료형을 쓰는 것이 좋겠조?!

3.아스키 코드

아스키 코드 10진수 16진수
0~9 48~57 0x30 ~ 0x39
A~Z 65~90 0x41 ~ 0x5A
a~z 97~122 0x61 ~ 0x7A
  • 문자 인코딩에 사용
    • 사용자가 입력한 문자나 기호들을 컴퓨터가 알아들을 수 있는 신호로 바꾼 것
    • 복잡한 신호를 0과 1로 이루어진 디지털 신호(2진수로) 변화한 것이다.
    • 간단하게 각각의 글자는 2진수에 대응되어저 컴퓨터가 이해한다고 보면된다.
    • 아스키 코드판

3. 산술 연산자

연산자 명칭
= 대입 연산자
+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나머지 값

연산자를 이용한 계산
계산: 왼쪽>오른쪽  대입: 오른쪽 > 왼쪽

 

3. 대입 연산자와 증감 연산자

연산자 명칭 사용 예 설명
+= 대입 연산자 a+=3 a=a+3 과 동일
-= 대입 연산자 a-=3 a=a-3 과 동일
*= 대입 연산자 a*=3 a=a*3 과 동일
/= 대입 연산자 a/=3 a=a/3 과 동일
%= 대입 연산자 a%=3 a=a%3 과 동일
++ 증가 연산자 a++ ||++a a+=a or a=a+1 과 동일
-- 감소 연산자 a-- || --a a-=1 a= a-1 과 동일

4. 관계 연산자

연산자 의미 설명
== 같다 두 값이 동일하면 참이다
!= 같지 않다 두 값이 다르면 참이다.
> 크다. 왼쪽이 크면 참이다.
< 작다. 왼쪽이 작으면 참이다.
>= 작거나 같다. 왼쪽이 크거나 같으면 참이다.
<= 작거나 같다. 왼쪽이 작거나 같으면 참이다.

5. 논리 연산자

연산자 의미  사용예 설명
&& ~이고 그리고(AND) (a>100)&&(a<200) 둘 다 참이어야 참이다.
|| ~이거나 또는(OR) (a>100)||(a<200) 둘 중 하나만 참이어도 참이다.
! ~아니다 부정(NOT) !(a==100) 참이면 거짓, 거짓이면 참이다.

5. 논리 연산자

연산자 명칭 설명
& 비트 논리곱(AND) 둘 다 1이면 1이다.
| 비트 논리합(OR) 둘 중 하나만 1이면 1이다.
^ 비트 배타적 논리합(XOR) 둘이 같으면 0 둘이 다르면 1이다.
~ 비트 부정 1은 0으로 0은 1로 변경한다.
<< 비트 왼쪽 시프트(이동) 비트를 왼쪽으로 시프트 (이동)한다.
>> 비트 오르쪽 시프트(이동) 비트를 오르쪽으로 시프트(이동)한다.

 

'임베디드 개발자 > 코딩' 카테고리의 다른 글

C언어 기반 영상처리 프로젝트  (1) 2022.02.05
포인터_포인터와 배열  (0) 2022.01.25
포인터/배열  (0) 2022.01.19
이미지 처리  (0) 2022.01.19
간단한 컴퓨터 설명 _1월 17일  (0) 2022.01.17