오보에블로그

Bitwise Operators and Enumeration Types 본문

C++ & C#/C++

Bitwise Operators and Enumeration Types

(OBO) 2017. 11. 19. 09:52
728x90



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stido.h>
#include <limits.h>
#include <unistd.h>
 
void moving_sign(charcharcharchar);/*shift를 이용해서 글자를 움직인다.*/
void print_sign(int);//프린트 함수
 
int main(void){
    moving_sign('H','E','Y',' ');
    return 0;
}
 
void print_sign(int a){
    printf(" %c %c %c %c \n",
            a/(256*256*256), a/(256*256) , a/256, a);
 
}
 
void moving_sign(char _a, char _b, char _c, char _d){
    char a= _a, b= _b, c= _c, d= _d, tmp;
    int p;
 
    p = a;/*_ _ _ H */
    p = (p<< CHAR_BIT) |b;/*_ _ H E */
    p = (p<< CHAR_BIT) |c;/*_ H E Y */
    p = (p<< CHAR_BIT) |d;/*H E Y _ */
 
    while(1){
        system("clear");/*터미널에 출력된 내용 삭제 */
        print_sign(p);
        sleep(1);/*1초 쉬기*/
        unsigned mask = 255;/*mask = 00000000 00000000 00000000 11111111*/
        mask <<= 3*CHAR_BIT;/*mask = 11111111 00000000 00000000 00000000*/
        tmp = (p&mask)>>3*CHAR_BIT;/* (p&mask) = 'H'의 아스키값 00000000 00000000 00000000
                          tmp = (p&mask)>>3*CHAR_BIT = 00000000 00000000 00000000 'H의 아스키값' */
        p = (p<< CHAR_BIT) | tmp;/* E Y _ H */
 
    }
 
}
cs


728x90

'C++ & C# > C++' 카테고리의 다른 글

1065 한수  (0) 2017.12.28
1085 직사각형에서 탈출  (0) 2017.11.20
단어순서 뒤집기  (0) 2017.10.29
Makefile을 이용하여 한꺼번에 컴파일하기  (0) 2017.10.26
팰린드롬?  (0) 2017.10.24