😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[inflearn κ°•μ˜] κΈ°λ³Έ 문법 - λΉ„νŠΈ 논리 μ—°μ‚°μžμ™€ μ‰¬ν”„νŠΈ μ—°μ‚°μž λ³Έλ¬Έ

πŸ‘©‍πŸ’» IoT (Embedded)/C++

[inflearn κ°•μ˜] κΈ°λ³Έ 문법 - λΉ„νŠΈ 논리 μ—°μ‚°μžμ™€ μ‰¬ν”„νŠΈ μ—°μ‚°μž

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 6. 27. 19:24
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” μ–΄μ†ŒνŠΈλ½ κ²Œμž„μ•„μΉ΄λ°λ―Έ λ‹˜μ˜ 유튜브λ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

=> C++ Let's Make Games

 

🫧 λΉ„νŠΈ λ…Όλ¦¬ μ—°μ‚°μžμ™€ μ‰¬ν”„νŠΈ μ—°μ‚°μž

μƒμˆ˜ : λ³€ν•˜μ§€ μ•ŠλŠ” 수. ν•œλ²ˆ μ§€μ •ν•˜λ©΄ λ°”κΏ€ 수 μ—†μŒ
μƒμˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— κ°’ 지정해야 함
μ—°μ‚°μž μΆ•μ•½ν˜• :
μ—°μ‚°μž μ€„μ—¬μ„œ μ‚¬μš© κ°€λŠ₯
μ‰¬ν”„νŠΈ μ—°μ‚°μž : 
<<, >> κ°’ λŒ€ κ°’ μ—°μ‚°ν•˜μ—¬ κ°’μœΌλ‘œ λ‚˜μ˜΄ (μ΄μ§„μˆ˜ λ‹¨μœ„μ˜ μ—°μ‚°)

20 << 2 => 10100 << 2 였λ₯Έμͺ½μœΌλ‘œ 0 두칸 뢙이기 => 1010000 => 64 + 16 = 80
20 << 3 => 10100000 => 160
즉, 2^n κ³±ν•˜κΈ°

20 >> 2 => 101 = 5
20 >> 3 => 10 = 2
즉, 2^n λ‚˜λˆ„κΈ° (μ†Œμˆ˜μ  λΊŒ)

증감 μ—°μ‚°μž : ++, --
// μ „μΉ˜
++iNumber;
// ν›„μΉ˜

iNumber++;

// Chapter1_5

#include <iostream>
using namespace std;

int main()
{
	// μƒμˆ˜ : λ³€ν•˜μ§€ μ•ŠλŠ” 수. ν•œλ²ˆ μ§€μ •ν•˜λ©΄ λ°”κΏ€ 수 μ—†μŒ
	// μƒμˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— κ°’ 지정해야 함
	const int	iAttack = 0x00000001;	// 1
	const int	iArmor = 0x00000002;	// 10
	const int	iHP = 0x00000004;		// 100
	const int	iMP = 0x00000008;		// 1000
	const int	iCritical = 0x00000010;	// 10000

	// 1 | 100 => 101 | 10000 => 10101
	int iBuf = iAttack | iHP | iCritical;

	// μ—°μ‚°μž μΆ•μ•½ν˜• : μ—°μ‚°μž μ€„μ—¬μ„œ μ‚¬μš© κ°€λŠ₯
	// iBuf = iBuf ^ iHP;	(λ‹€λ₯Ό λ•Œλ§Œ μ°Έ)
	// 10101 ^ 00100 = 10001

	// 10101 & 00001 = 1
	cout << "Attack : " << (iBuf & iAttack) << endl;
	// 10101 & 00010 = 0
	cout << "Armor : " << (iBuf & iArmor) << endl;

	/*
	μ‰¬ν”„νŠΈ μ—°μ‚°μž : <<, >> κ°’ λŒ€ κ°’ μ—°μ‚°ν•˜μ—¬ κ°’μœΌλ‘œ λ‚˜μ˜΄
	μ΄μ§„μˆ˜ λ‹¨μœ„μ˜ 연산함
	20 << 2 => 10100 << 2 였λ₯Έμͺ½μœΌλ‘œ 0 두칸 뢙이기 => 1010000 => 64 + 16 = 80
	20 << 3 => 10100000 => 160
	즉, 2^n κ³±ν•˜κΈ°

	20 >> 2 => 101 = 5
	20 >> 3 => 10 = 2
	즉, 2^n λ‚˜λˆ„κΈ° (μ†Œμˆ˜μ  뺌)
	*/

	int iHigh = 187;
	int iLow = 13560;
	int iNumber = iHigh;

	// iNumber μ—λŠ” 187 듀어감
	// < λ°©ν–₯으둜 16λΉ„νŠΈ μ΄λ™μ‹œν‚€λ©΄ μƒμœ„ 16λΉ„νŠΈμ— 값이 듀어감
	iNumber <<= 16;

	// ν•˜μœ„ 16λΉ„νŠΈ μ±„μš΄λ‹€
	iNumber |= iLow;

	// iHigh 좜λ ₯ν•˜κΈ°
	cout << "High : " << (iNumber >> 16) << endl;
	cout << "Low : " << (iNumber & 0x0000ffff) << endl;

	// 증감 μ—°μ‚°μž : ++, --

	// μ „μΉ˜
	++iNumber;

	// ν›„μΉ˜
	iNumber++;

	cout << ++iNumber << endl;
	cout << iNumber++ << endl;
	return 0;
}

728x90
λ°˜μ‘ν˜•
Comments