λ΄ μ견μ λν λμ λ Όλ¦¬λ κΈ°μ΅νμ§ μκ³ μλ
λ΄ μ견μ κΈ°μ΅νκΈ°κ° μμ£Ό μ΄λ ΅λ€.
"It is hard enough to remember my opinions, without also
remembering my reasons for them!"
- νλ λ리ν λ체
λ¬ΈμλΌλ κ²μ λ³Έλ μμ μ΄ λ³΄κ³ λλ κ²μ κΈ°λ‘νκΈ° μν΄μ λ§λ€μ΄μ‘λ€.
λ¬Έμλ₯Ό μκ³ μμμλ μκ°λ§μ νκ² λλ€λ©΄ λ¬Έμμ μ°μλ μ¬λΌμ§κ² λλ€.
"Shift μ°μ°μ"
// Left Shift μ°μ° ( << ) : μ§μ ν μλ§νΌ λΉνΈλ€μ μ λΆ μΌμͺ½μΌλ‘ μ΄λμν΄
// Right Shift μ°μ° ( >> ) : μ§μ ν μλ§νΌ λΉνΈλ€μ μ λΆ μ€λ₯Έμͺ½μΌλ‘ μ΄λμν΄
int byte = 8;
byte <<= 1; // κ³±νκΈ° 2 : 16
byte >>= 1; // λλκΈ° 2 : 8
byte <<= 2; // κ³±νκΈ° 4 : 32
byte >>= 2; // λλκΈ° 4 : 8
byte <<= 3; // κ³±νκΈ° 8 : 64
byte >>= 3; // λλκΈ° 8 : 8
"Bitwise μ°μ°μ"
// λΉνΈ AND (&) : λμλλ λΉνΈκ° λͺ¨λ 1μ΄λ©΄ 1μ λ°νν¨
// λΉνΈ OR (|) : λμλλ λΉνΈ μ€μμ νλλΌλ 1μ΄λ©΄ 1μ λ°νν¨
// λΉνΈ NOT (~) : λΉνΈλ₯Ό 1μ΄λ©΄ 0μΌλ‘, 0μ΄λ©΄ 1λ‘ λ°μ μν΄
// λΉνΈ XOR (^) : λμλλ λΉνΈκ° μλ‘ λ€λ₯΄λ©΄ 1μ λ°νν¨
[ "λΉνΈ μ°μ° μμΈν 보기" ]
#include
// λ€λ₯Έ νμΌμ λ΄μ©μ νμ¬ νμΌμ ν¬ν¨μν€κ³ , μ£Όλ‘ ν€λ νμΌμ ν¬ν¨ν λ μ¬μ©
#define
// λ§€ν¬λ‘λ₯Ό μ μνλ€. λ§€ν¬λ‘λ νΉμ ν κ°μ΄λ μ½λ λΈλ‘μ λ체νλλ° μ¬μ©
#ifdef, #ifndef, #else, #endif
// μ‘°κ±΄λΆ μ»΄νμΌμ μν μ§μλ¬ΈμΌλ‘ νΉμ μ‘°κ±΄μ΄ μ°ΈμΌ λ μ½λλ₯Ό μ»΄νμΌνκ±°λ 무μν¨
#pragma
// νμΌλ¬μκ² νΉλ³ν μ§μλ₯Ό μ 곡νκ±°λ μ»΄νμΌλ¬ νΉμ±μ μ€μ νλ€.
μ»΄νμΌλ¬λ§λ€ λ€λ₯Ό μ μλ μΆκ° κΈ°λ₯μ νμ©ν λ μ¬μ©
#error
// μ»΄νμΌ μ μλ¬ λ©μμ§λ₯Ό μΆλ ₯νκ³ μ»΄νμΌμ μ€λ¨
#warning
// μ»΄νμΌ μ κ²½κ³ λ©μμ§λ₯Ό μΆλ ₯νμ§λ§ μ»΄νμΌμ κ³μ μ§ν
#define HUNGRY 0x001
#define THIRSTY 0x002
#define TIRED 0x004
#define FIRE 0x008
#define COLD 0x010
#define POISON1 0x020
#define POISON2 0x040
#define POISON3 0x080
#define POISON4 0x100
#define POISON5 0x200
#define POISON6 0x400
#define POISON7 0x800
...
// κ²μ μΊλ¦ν° μνμ°½ ꡬν
unsigned int iStatus = 0; // (1) κΈ°λ³Έ μν
iStatus |= HUNGRY; // (2) λ°°κ³ ν μν λΆμ¬
iStatus |= TIRED; // (3) νΌλ‘ μν λΆμ¬
if (iStatus & HUNGRY) // (4) μν νμΈ
{
//ex) 3s, -5HP
}
iStatus &= ~HUNGRY // (5) νΉμ λΉνΈ μ κ±°
EX)
(1) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
---|
β β β β β β β β β β β β
(2) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
---|
β β β β β β β β β β β β
(3) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
---|
β β β β β β β β β β β β
(3) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
---|---|---|---|---|---|---|---|---|
(4) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
β μν νμΈ ν λͺ λ Ή
β β β β β β β β β β β β
(5) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
---|---|---|---|---|---|---|---|---|
(5) | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
β β β β β β β β β β β β
(5) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
---|
보μλ λΆμ΄ λ§μ§λ μκ² μ§λ§ νΉμ μλͺ»λ μ λ³΄κ° μμΌλ©΄ μλ €μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.