• λΉνΈ(bit): μ»΄ν¨ν°μμ μ 보λ₯Ό μ μ₯νλ κ°μ₯ μμ λ¨μ
• 2μ§μμ νμ리μ ν΄λΉνλ―λ‘ 0 λλ 1μ κ°μ κ°μ§ μ μλ€.
• λΉνΈ 8κ°κ° λͺ¨μ΄λ©΄ λ°μ΄νΈ(byte)κ° λλ€.
• μλ₯Ό λ€μ΄μ μ μ 10μ μ»΄ν¨ν° μμμ λ€μκ³Ό κ°μ 32λΉνΈ ν¨ν΄μΌλ‘ μ μ₯λλ€. μ μ 10μ 2μ§μλ‘ λ³ννλ©΄ μ½κ² μ μ μλ€.
0000 0000 0000 0000 0000 0000 0000 1010
• μμ λΉνΈ ν¨ν΄μ 16μ§μλ‘ νμνλ©΄ λ€μκ³Ό κ°λ€.
0x000000A
• μ΄κ²μ μ½κ² λ³ννλ €λ©΄ μλμ°μ "νλ‘κ·Έλλ¨Έμ©" κ³μ°κΈ°λ₯Ό μ¬μ©νλ©΄ λλ€.
• λΉνΈ μ°μ°μλ λΉνΈλ³λ‘ AND μ°μ°μ΄λ OR μ°μ°μ νλ μ°μ°μμ΄λ€.
• λΉνΈ μ°μ°μλ μ μ νμ μ νΌμ°μ°μμλ§ μ μ©ν μ μλ€.
• μ¦, μ μ νμ μλ char, short, int, long λ±μ΄ μλ€. μ μ νμμ΄λ©΄ signedλ unsignedμ μκ΄μμ΄ λͺ¨λ μ μ© κ°λ₯νλ€.
• λΉνΈ μ°μ°μλ λΆλμμμ μμλ μ μ©ν μ μλ€. μ΄λ λΉμ°ν κ²μΌλ‘ λΆλμμμ μλ μ»΄ν¨ν° λ΄λΆμλ μ μμ λ€λ₯΄κ² ννλλ€λ κ²μ μ μ μ€λͺ ν λ° μλ€.
• λΉνΈ λ¨μ μ°μ°μλ μμ€ν κ³Ό μ»΄νμΌλ¬μ λ°λΌμ μ½κ°μ© λ¬λΌμ§ μ μλ€. (λΉμ£ΌμΌ μ€νλμ€λ₯Ό κΈ°μ€μΌλ‘ νλ€.)
• μ§κΈλΆν° κ°κ°μ λΉνΈ μ°μ°μλ₯Ό μμΈν μ΄ν΄λ³Έλ€.
λΉνΈ AND, OR, XOR, NOT
• 2κ°μ intνμ λνμ¬ λΉνΈ AND μ°μ°μ νλ€κ³ νμ. κ°μ μμΉμ λΉνΈλ₯Ό λΉκ΅νμ¬, νλλΌλ 0μ΄ μμΌλ©΄ κ²°κ³Ό λΉνΈλ 0μ΄ λλ€.
• μ΄λ²μλ λΉνΈ OR μ°μ°μ νλ€κ³ νμ. κ°μ μμΉμ λΉνΈλ₯Ό λΉκ΅νμ¬, νλλΌλ 1μ΄ μμΌλ©΄ κ²°κ³Ό λΉνΈλ 1μ΄ λλ€.
• μ΄λ²μλ λΉνΈ XOR μ°μ°μ νλ€κ³ νμ. κ°μ μμΉμ λΉνΈλ€μ΄ μΌμΉνλ©΄ 0μ΄ λκ³ λ€λ₯΄λ©΄ 1μ΄ λλ€.
• λΉνΈ NOT μ°μ°μ μκ°ν΄λ³΄μ. λ³μ μμ κ° λΉνΈλ€μ λ°μ μν¨λ€. λΆνΈλ₯Ό λνλ΄λ λΉνΈλ λ°μ λλ€.
• μμ μ€λͺ μ νλ‘κ·Έλ¨μΌλ‘ μμ±νμ¬ νμΈν΄λ³΄μ.
#include <stdio.h>
int main(void)
{
int x = 9; // 00001001
int y = 10; // 00001010
printf("%08X & %08X = %08X\n", x, y, x & y); // 00001000
printf("%08X | %08X = %08X\n", x, y, x | y); // 00001011
printf("%08X ^ %08X = %08X\n", x, y, x ^ y); // 00000011
printf("~ %08X = %08X\n", x, ~x ); // 11110110
return 0;
}
λΉνΈ μ΄λ μ°μ°μ (<<, >>)
• λΉνΈ μ΄λ(shift) μ°μ°μλ μ§μ λ μ«μλ§νΌ μ 체 λΉνΈλ₯Ό μ΄λμν¨λ€.
• μ΄λν μ μλ λ°©ν₯μ΄ μΌμͺ½κ° μ€λ₯Έμͺ½ λ κ°κ° μμΌλ―λ‘ λ κ°μ μ°μ°μ <<μ >>κ° νμνλ€.
• λ¨Όμ μΌμͺ½ μ΄νΈ μ΄λ μ°μ°μμΈ <<λ μ§μ λ μ«μλ§νΌ μΌμͺ½μΌλ‘ μ΄λνλ€.
• μ΄ λ λ³μμ κ²½κ³λ₯Ό λ²μ΄λλ λΉνΈλ€μ μμ΄μ§κ² λκ³ μ€λ₯Έμͺ½μ λ°μνλ λΉ κ³΅κ°μ 0μΌλ‘ μ±μμ§κ² λλ€.
• μλ₯Ό λ€μ΄μ 15<<2λ₯Ό μκ°νμ¬ λ³΄μ.
• λΉνΈλ€μ μΌμͺ½μΌλ‘ ν λ² μ΄λν λλ§λ€ κ°μ λ λ°°κ° λλ€. μ΄ νΉμ±μ μ΄μ©ν μ μμκΉ?
• κ°λ°μλ€μ μμ λΆν° λΉνΈ μ°μ°μ μ΄μ©νμ¬ λΉ λ₯΄κ² 2λ°°λ‘ λ§λλ λ°©λ²λ€μ μ¬μ©νμ¬ μλ€.
• μ€λ₯Έμͺ½ λΉνΈ μ΄λ μ°μ°μμΈ >> λ μ§μ λ μ«μλ§νΌ λΉνΈλ€μ μ€λ₯Έμͺ½μΌλ‘ μ΄λνλ€.
• μ΄λμλ λ³μμ κ²½κ³λ₯Ό λ²μ΄λλ λΉνΈλ€μ μμ΄μ§κ² λκ³ μΌμͺ½μ λ°μνλ λΉ κ³΅κ°μ λΆνΈ λΉνΈλ‘ μ±μμ§κ² λλ€.
• μ¬κΈ°μ μ£Όμν μ μ μΌμͺ½μ λ°μνλ λΉ κ³΅κ°μ 무μμ 0μΌλ‘ μ±μ°λ©΄ μ λκ³ λΆνΈ λΉνΈλ‘ μ±μμΌ νλ€λ μ μ΄λ€.
• μμλ©΄ λΆνΈλΉνΈκ° 0μ΄λ―λ‘ 0μΌλ‘ μ±μ°λ©΄ λκ³ , μμλΌλ©΄ λΆνΈ λΉνΈκ° 1μ΄λ―λ‘ 1λ‘ μ±μμΌ νλ€.
• λ§μ½ λΆνΈ λΉνΈλ‘ μ±μ°μ§ μμΌλ©΄ μ΄λ μ°μ°μ΄ λλ λ€μ μμκ° μμλ‘ λ³ν μλ μκΈ° λλ¬Έμ΄λ€.
• 15 >> 2 μ κ°μ΄ μμλ₯Ό λΉνΈ μ΄λνλ κ²½μ°λ₯Ό μ΄ν΄λ³΄μ.
• μ μ 9λ₯Ό μΌμͺ½κ³Ό μ€λ₯Έμͺ½μΌλ‘ 1λΉνΈμ© μ΄λμμΌμ κ²°κ³Όλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μ΄ν΄λ³΄μ.
• 2λ°°λ‘ λκ±°λ 1/2λ°°λ‘ λ κ²μ νμΈν΄λ³΄μ.
#include <stdio.h>
int main(void)
{
int x = 9; // 1001
printf("%d << 1 = %d\n", x, x << 1); // 10010
printf("%d >> 1 = %d\n", x, x >> 1); // 00100
return 0;
}
'1νλ (2023) > C μΈμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C] λ°±μ€/BAEKJOON 15651λ²: Nκ³Ό M (3) (0) | 2023.11.22 |
---|---|
[C] Study : μμκ³Ό μ°μ°μ - (6) μ°μ°μμ μ°μ μμμ κ²°ν© κ·μΉ (0) | 2023.08.28 |
[C] Study : μμκ³Ό μ°μ°μ - (4) κ΄κ³ μ°μ°μ (0) | 2023.08.21 |
[C] Study : μμκ³Ό μ°μ°μ - (3) λμ μ°μ°μ (0) | 2023.08.21 |
[C] Study : μμκ³Ό μ°μ°μ - (2) μ°μ μ°μ°μ (0) | 2023.08.21 |