C언어 1주차

김모아·2022년 12월 1일
0
post-thumbnail

동혁님께서 c언어 수업 해주신다고 하셔서 냉큼 알겠다고 했다. 총 6주차!

어제 수업 내용
1. 프로그래밍 언어 종류
2. data type
3. about byte and bit
4. 대입 연산자 int
5. if문
6. int와 if문을 활용한 문제 풀기

1. 프로그래밍 언어 종류

  • python: 교육 목적, 문법이 쉬움. 인공지능에 많이 쓰임. 사소한 작업은 컴퓨터가 다 해줌. 그만큼 제어도가 낮다.
  • java: 객체지향적. 데이터 위주. 컴퓨터 본체 부품이라고 비유하셨다. like cpu, gpu, ram
  • C: 근본. 절차지향적. 순서대로 처리. 컴퓨터 자체라고 비유하셨다. 코드를 수정할 일이 생기거나 유지 보수를 할 때 불편함. 데니스 리치가 1972년 개발.
  • C#: C언어 + 기능. 객체지향적. 게임 제작에 많이 사용 (유니티) -> 빠르다. (중소기업에서는 이거 씀. 쉽다!)
  • CPP: C언어 + 기능. 객체지향적. 게임 제작에 많이 사용 (언리얼) -> 대기업에서는 이거 씀. 어려운 만큼 퀄리티가 높다.)

2. data type

  • 자료형: data type. 여러 종류의 데이터들을 분류, 저장. 변수의 종류를 의미함. 데이터를 담을 수 있는 최대 크기에 따라 자료형의 종류가 나뉨
  • 정수형: char(1), short(2), int(4), long(4), longlong(8)
  • 실수형: float(4), double(8)
    *()괄호는 bite

longlong은 너무 길어서 잘 안 쓰고 대부분 int로 해결 가능하다고 하심. 실수형 중에는 double도 있는데 이것도 잘 안 쓴다고 하심.
수업 들을 때는 길수록 좋은 거 아닌가? 싶었는데 복습하려고 찾아본 링크에서 값의 표현범위를 설명한 표를 보고, '아.. 이유가 있구나' 싶었다 ㅋㅋ 말도 안 되게 큼..

3. about byte and bit

그렇다면 bite는 무엇인가?

  • 컴퓨터는 0,1 두 가지 만으로 구성된 2진수. 둘 중 하나 쓰면 -> 1bit
  • 8bit = 1byte 0,1
  • 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 1byte = 256 = -128 ~ 128
  • int는 signed 변수이기 때문에 음수와 양수 둘 다 표현이 가능함.
  • 맨앞 숫자가 0이면 양수, 1이면 음수
    ex) 0000 0000 = 0, 0000 0001 = 1, 0000 0010 = 2, 0000 0011 = 3, 1111 1111 = -1
  • 00 = 0, 01 = 1, 10 = 2, 11 = 3, 101 = 4

    128 다음 숫자는 -128 이라고 하셨음. 컴퓨터 숫자는 이런 식으로 넘어감. 윈도우 날짜도 이 점이 반영되는데, 2030년에 동난다고 하셨음. 1970년으로 넘어가는 식? 그 전에 마이크로소프트에서 뭔가 작업을 하겠지만.. 2000년 오기 전에 세계가 멸망할 거다, 라는 소문이 돌았던 것도 이것에 기반한 것이라는 재미난 사실을 알게 됨. 아는 척하기 좋은 정보 ㅋㅋ 재밌었다!

  • most significant bit (MSB) : 최상위 비트

The most significant bit (MSB) is the bit in a multiple-bit binary number with the largest value. This is usually the bit farthest to the left, or the bit transmitted first in a sequence. For example, in the binary number 1000, the MSB is 1, and in the binary number 0111, the MSB is 0.

4. 대입 연산자 int

  • 헤더파일 입력한 뒤 int main()으로 모든 것을 묶어 시작함.
#include <stdio.h>

int main()
{
여기에 코드 작성
}
  • 선언과 대입을 따로 하는 경우
int Hello; // int 자료형의 크기를 가진 Hello 변수가 선언
Hello = 30; // Hello에 30을 대입함
  • 선언과 대입을 동시에 하는 경우
int Bye =7; // Bye의 값은 7이다.
printf("%d", Hello); // Hello를 출력해라
printf("%d", Bye); // Bye를 출력해라
  • 사칙연산
    더하기: +, 빼기: -, 곱하기: *, 나누기: /, 나머지: %
int result = Hello + Bye;

5. if문

  • else if는 'if에서 안 된다면 이걸 해봐'라는 뜻. 무한으로 사용가능! 절차지향적인 언어라 이렇게 사용하나부다 싶었음.
  • else는 마지막 찬스. 'else if에서 안 되면 이걸 해봐'라는 뜻. 딱 하나만 쓸 수 있음.
int Bye =7; // Bye의 값은 7이다.

if (Bye ==6)
{
	printf("Bye는 6입니다");
}
else if (Bye == 8)
{
	printf("Bye는 7입니다!!!");
}
else
{
	printf("Bye는 먼가요?\");
}

6. int와 if문을 활용한 문제 풀기

int 자료형을 가진 두 가지 변수 20, 30을 선언하고 두 변수를 더하여, 더한 값에 if문을 통하여 50인지 확인하자.
변수값: value1, value2.
result가 위에 있어서 result1으로 함.

int value1 = 20;
int value2 = 30;
int result1 = value1 + value2;

if(result1 == 50)
{
	printf("50입니다~~");
}

오류 나오니까 엥?? 싶었는데, 디스코드로 화면 공유해서 하나하나 봐주셔서 너무 좋았다 ㅠㅠ 혼자 공부했으면 진작에 때려치웠을 듯?? byte and bit 부분에서 유진님도 계속 엥?? 하셔서 너무 웃겼음ㅋㅋ 재밌는 수업이었다!~!!


Dec2, 05:50

기초가 없어서 이것저것 찾아보면서 메모하니 2시간이나 걸렸다 ㅋ
느릿느릿,,

그래도 새로운 것 배우는 건 언제나 설렌다!

profile
삐약~!!!!!뺙뺙!!!

0개의 댓글