bitwise연산자는 어디에 쓰이나요?

zernar의 이미지

학교에서 bitwise연산에 대해서 배웠는데요,

이걸 어떻게 사용한다는거지요??

내공이 부족해서 -_-;;

여기저기 찾아봤는데, 잘모르겠어요.ㅠ

bitwise가 뭔지는 이해했는데, 그 bit단위의 연산이

대체 어떻게 써먹는건지;;

알려주시면 감사하겠습니다.^^

samsee의 이미지

네트워크 프로그래밍 할 때 많이 써먹었던 것 같네요. 운영체제 과제를 할 때도 그랬던 것 같고.
예를 들어 유닉스 파일 퍼미션에 비트연산이 아주 잘 녹아있지요.
rwx == 7 이라고 표현되지요. r은 4 w는 2 x는 1 합해서 7 이라고 표현하는 거지요. x 파일에 y 권한이 있는지 확인하려면 AND 연산을 사용하면 되겠죠! 네트워크에서도 비슷한 경우가 많았던 것 같습니다.

AND 같은 경우에는 비트 추출할 때 많이 사용하는 것 같습니다. 굳이 비트를 사용하는 이유는? 속도도 빠르고 용량도 가볍지요. 구현하기도 편리합니다. 위의 퍼미션을 String으로 구현한다면 어떻게 될까요? bitwise and 보다는 복잡할 것 같습니다.

짧막한 지식으로 쓴 글이라 많이 부족하네요. ㅠ 저보다 더 나으신 분이 친절한 답변 달아주시길 기대하며 ㅋ

winner의 이미지

아아... 실은 이게 제 지도교수님이 학부생 수업에서 낸 숙제랑 같아서... ^_^
어떤 분인지 궁금하군요.

저는 서울시립대 대학원생이랍니다.

bluelenz의 이미지

서브넷 마스크 에서도 사용하지요
좋은 예가 될 것 같습니다

uosarang의 이미지

지도규수님이 수업에서 낸 숙제...

숙제가 비트와이즈 연산이 실제로 쓰이는 부분에 대해서 조사하라.인가요?

머리를 굴려라! 그래야 먹고 산다.

mini2g의 이미지

어셈블리에서는 변수 초기화 할때 좀 썼었는데요..;;

xor ax, ax라던지
and ax, 0

이런 경우에 사용했었드랬죠...
아마 제 기억에서는
C 언어로 crc-32 구현하던 과제에서도 사용을 했던 것 같은데
low한 경우에서는 클럭이라던지 라인 수라던지 민감하게 생각되서
자주 쓰는데 high에서는 제 편의만 고려해서 그런지 잘 사용 안하게되는...
귀차니즘....;;;;
실력이 딸려서 그런지 비트 연산을 남발하면 읽는게 더 어려워져서 꺼려진다는...;;;

--------------------------------------------------------------
char mini2g[MAX];
if ((기상 후 30분 && 취침 전 30분을 제외한 시간) == (코딩하는 시간))
strcpy(mini2g, "expert");

"overflow" orz...

--------------------------------------------------------------
char mini2g[MAX];
if ((기상 후 30분 && 취침 전 30분을 제외한 시간) == (코딩하는 시간))
strcpy(mini2g, "expert");

"overflow" orz...

jsj3579의 이미지

디바이스에 시그널 날려줄때, 아주 막막 씁니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.