• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

연습문제 코드 첨부

20.05.12 02:01 작성 조회수 236

0

안녕하세요 

좋은 강의 잘 듣고 있습니다.

연습문제를 풀어 보았는데 맞게 한건지 궁금하여 첨부합니다.

int main()  //연습문제

{

unsigned char option_viewed = 0x01;

unsigned char option_edited = 0x02;

unsigned char option_liked = 0x04;

unsigned char option_shared = 0x08;

unsigned char option_deleted = 0x80;

unsigned char my_article_flags = 0;

/*cout << bitset<8>(option_viewed) << endl;

cout << bitset<8>(option_edited) << endl;

cout << bitset<8>(option_liked) << endl;

cout << bitset<8>(option_shared) << endl;

cout << bitset<8>(option_deleted) << endl;*/

//viewed article

my_article_flags |= option_viewed;

cout << bitset<8>(my_article_flags) << endl;

//clicked like 

my_article_flags |= option_liked;

cout << bitset<8>(my_article_flags) << endl;

//clicked like again

my_article_flags &= ~option_liked;

cout << bitset<8>(my_article_flags) << endl;

//deleted this article

my_article_flags |= option_deleted;

cout << bitset<8>(my_article_flags) << endl;

return 0;

}

답변 2

·

답변을 작성해보세요.

1

Hello Yeo님의 프로필

Hello Yeo

2020.05.12

문제 없이 잘 하신 것 같습니다.

뭔가 하나 알려드리면 Exclusive or 이라는 게 있는데, ^ 입니다. 
https://en.wikipedia.org/wiki/Exclusive_or에서 truth table 만 보고 오셔도 충분합니다.

이걸 사용하시면 option_liked에 대한 동작을 하나로 만드실 수 있습니다. (다른 것도 마찬가지입니다.)

0

mmq mmq님의 프로필

mmq mmq

질문자

2020.05.12

항상 좋은 가르침 감사합니다.

my_article_flags |= option_liked;   와   my_article_flags &= ~option_liked;  를

XOR을 사용하여 한줄의 코드로 만들 수 있다는 말씀이신가요?

XOR을 사용하여 이것저것 시도는 해 보았으나 같은 동작을 할 수 있는 코드는 아직 만들어내지 못했습니다.

저의 실력 부족인것 같습니다..