GiantStepDEV

์กฐ๊ฑด ์—ฐ์‚ฐ์ž

#include <stdio.h>

int main() {
	int a = 20;
	int b = 30;

	int max = (a > b) ? a : b;
	printf("%d์™€ %d์ค‘ ํฐ ๊ฐ’์€ %d\n", a, b,max);

	(a > b) ? printf("a:%d์™€ b:%d์ค‘์— a๊ฐ’์ด ํฌ๋‹ค.\n",a,b) : printf("a:%d์™€ b:%d์ค‘์— b๊ฐ’์ด ํฌ๋‹ค.\n",a,b);

	return 0;
}

์ฆ๊ฐ ์—ฐ์‚ฐ์ž

#include <stdio.h>

int main() {
	// ์ฆ๊ฐ์—ฐ์‚ฐ์ž ++, --
	// ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž
	// ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ฑฐ๋‚˜ 1 ๊ฐ์†Œ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ

	int a = 20;
	int b = 0;

	++a;
	printf("%d\n", a);

	a++;
	printf("%d\n", a);
	//์ฆ๊ฐ์—ฐ์‚ฐ์ž๊ฐ€ ๋‹จ๋…์œผ๋กœ ์“ฐ์ด๋ฉด ์ „์œ„์‹,ํ›„์œ„์‹ ์ƒ๊ด€์—†์ด 1์ฆ๊ฐ€๋จ.

	b = ++a;
	// ์ „์œ„์‹์€ ์ฆ๊ฐ€ ํ›„ ๋ณ€์ˆ˜ ๋Œ€์ž…
	// a = a + 1
	// b = a
	printf("%d, %d\n", a, b);

	b = a++;
	// ํ›„์œ„์‹์€ ๋ณ€์ˆ˜ ๋Œ€์ž… ํ›„ ์ฆ๊ฐ€
	// b = a
	// a = a + 1
	printf("%d, %d\n", a, b);

	return 0;
}

๋Œ€์ž… ์—ฐ์‚ฐ์ž

๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๊ฐ„์—๋Š” ๋Œ€์ž…์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์„œ ์‹œ์ผœ์คŒ.(๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜)
ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ฐ’์„ ์ž‘์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ณต๊ฐ„์œผ๋กœ ๋Œ€์ž…์„ ํ•  ๊ฒฝ์šฐ์—๋Š” ๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜์„ ํ•˜๋ฉด ์•ˆ ๋จ.
์ด ๋•Œ๋Š” ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜์„ ํ•ด์ค˜์•ผ ํ•จ.

#include <stdio.h>

int main() {
	// ๋Œ€์ž… ์—ฐ์‚ฐ์ž
	int a;
	int b = 30;
	float c = 3.4f;

	a = 20;
	a = b;
	a = c;

	a = (int)c;
	printf("a : %d", a);

	a += 1;
	// a = a + 1;
	// ๋Œ€์ž… ์—ฐ์‚ฐ์ž ์ถ•์•ฝํ˜•

	return 0;
}

๋น„ํŠธ ์—ฐ์‚ฐ์ž

&(๋น„ํŠธ and)
|(๋น„ํŠธ or)
~(๋น„ํŠธ not)
^(๋ฐฐํƒ€์  OR)
<<(์™ผ์ชฝ shift)
>>(์˜ค๋ฅธ์ชฝ shift)

#include <stdio.h>

int main() {
	unsigned char a = 2;
	unsigned char b = 3;
	// a: 00000010
	// b: 00000011

	// a & b : 00000010
	// a | b : 00000011
	// ~a : 11111101
	// a ^ b : 00000001 (๋‘ ๋น„ํŠธ๊ฐ€ ๊ฐ™์œผ๋ฉด 0, ๋‹ค๋ฅด๋ฉด 1)

	unsigned char ret = a & b;
	printf("a & b : %d\n", ret);

	ret = a | b;
	printf("a | b : %d\n", ret);

	ret = ~a;
	printf("~a : %d\n", ret);

	ret = a ^ b;
	printf("a ^ b : %d\n", ret);

	return 0;
}

    &(๋น„ํŠธ And)
     : mask off
    ํŠน์ •์ž๋ฆฌ์˜ ๋น„ํŠธ๊ฐ’์„ 0์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ

    |(๋น„ํŠธ OR)
     : mask on
    ํŠน์ •์ž๋ฆฌ์˜ ๋น„ํŠธ๊ฐ’์„ 1๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ

#include <stdio.h>

int main() {
    int a = 1;

    a = a << 1; // ์™ผ์ชฝ shift
    a = a << 1; // ์™ผ์ชฝ shift
    // x2

    a = a << 2;
    a = a >> 1; // ์˜ค๋ฅธ์ชฝ shift;
    
    return 0;
}

๋น„ํŠธ ์—ฐ์‚ฐ์ž - ์‹ค์Šต ์˜ˆ์ œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	unsigned char light = 0;
	unsigned char mask = 1;
	int isOperator = 0;
	int roomNumber = 0;

	while (1) {
		printf("๋ฐฉ์˜ ์ „๋“ฑ์„ ์กฐ์ž‘ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?(1:์ „๋“ฑ ์ผœ๊ธฐ 2:์ „๋“ฑ ๋„๊ธฐ 3: ๋๋‚ด๊ธฐ) : ");
		scanf("%d", &isOperator);

		mask = 1;

		if (isOperator == 1) {
			printf("๋ช‡ ๋ฒˆ์งธ ๋ฐฉ๋ถˆ์„ ์ผœ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ: ");
			scanf("%d", &roomNumber);

			mask <<= roomNumber;

			light |= mask;
			printf("light = %d\n", light);
		}
		else if (isOperator == 2) {
			printf("๋ช‡ ๋ฒˆ์งธ ๋ฐฉ๋ถˆ์„ ๋„์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ: ");
			scanf("%d", &roomNumber);

			mask <<= roomNumber;

			light &= ~mask;
			printf("light = %d\n", light);
		}
		else {
			printf("์ „๋“ฑ ์กฐ์ž‘์„ ๋งˆ์นฉ๋‹ˆ๋‹ค.");
			break;
		}
	}
	return 0;

}

๋ฐฐํƒ€์ OR(XOR)

#include <stdio.h>

int main() {
	unsigned char a = 2;
	unsigned char b = 3;

	// a:      00000010
    // b:      00000011
    // 
    // a ^ b:  00000001 (c)
    // a:      00000010
    // c ^ a:  00000011 

    // b:      00000011
    // a ^ b:  00000001 (c)
    // c ^ b:  00000010  (a)

	unsigned char c = a ^ b;
	printf("a ^ b = %d", c);

	c = c ^ b;
	printf("c ^ b = %d", c); //a

	return 0;
}

size of ์—ฐ์‚ฐ์ž / ,(์‰ผํ‘œ) ์—ฐ์‚ฐ์ž

 (1) sizeof ์—ฐ์‚ฐ์ž๋Š” ์‹คํ–‰์ค‘์— ์ž‘๋™ํ•˜๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹ˆ๊ณ  ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ž‘๋™๋˜๋Š” ์—ฐ์‚ฐ์ž
     ์‹คํ–‰์ค‘์— ๋ณ€์ˆ˜๋‚˜ ๋ฐ์ดํƒ€ ํƒ€์ž…์˜ ๋ฐ”์ดํŠธ ์‚ฌ์ด์ฆˆ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋จ.

 (2) , (์‰ผํ‘œ์—ฐ์‚ฐ์ž) ๋ช…๋ น์–ด ๊ตฌ๋ถ„์ง€์–ด์„œ ์ด์–ด์„œ ์ž‘์„ฑํ•  ๋•Œ ์‚ฌ์šฉ

#include <stdio.h>

int main() {
	int a = 0;
	double b = 0.0;

	printf("int size = %d\n", sizeof(int));
	printf("a size = %d\n", sizeof(a));

	printf("double size = %d\n", sizeof(double));
	printf("b size = %d\n", sizeof(b));

	// , (์‰ผํ‘œ์—ฐ์‚ฐ์ž) ๋ช…๋ น์–ด ๊ตฌ๋ถ„์ง€์–ด์„œ ์ด์–ด์„œ ์ž‘์„ฑํ• ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
	int c = 0, d = 0, e = 0;

	printf("a = 0\n"), printf("b = 0\n");

	return 0;
}
profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!