디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

비트 가지고 놀기 - 기초

코로모갤로그로 이동합니다. 2015.12.24 23:42:49
조회 3026 추천 11 댓글 6
														


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b38177a16fb3dab004c86b6f1a1232ae65b3ad2634808df24674120c9e0a7a79aac46322d592a96094637a4fd4edb67a8a5922021f06b20947185caaec


u : unsigned

s : signed


>>  : 논리 시프트

>>u : 부호없는 산술 시프트

>>s : 부호있는 산술 시프트


ㄱ.기초

    a.비트 켜고 끄기


        1. 왼쪽의 한 비트를 켜고 끄기

            x | (x + 1) : 왼쪽의 한 비트를 켠다. 0100 -> 0101 -> 0111 -> 1111

            x & (x - 1) : 왼쪽의 한 비트를 끈다. 0111 -> 0110 -> 0100 -> 0000


        2. 좌측에서 처음 만나는 켜진비트만 끄기 or 꺼진비트만 켜기

            ~x | (x - 1) : 1010 0100 -> 1111 1011

            ~x & (x + 1) : 1010 0111 -> 0001 0000


        3. 좌측에서 처음 만나는 켜진비트만 켜기

            x & -x : 0110 0100 -> 0000 0100


        4. 좌측에서 처음 만나는 켜진비트와 그 후행비트켜기

            x ^ (x - 1) : 0110 0100 -> 0000 0111


        5. 선형 후행 켜진비트를 켜고 만나는 0도 같이 켜기

            x ^ (x + 1) : 0110 0111 -> 0110 1111


        6. 왼쪽의 선형 비트 켜고 끄기

            x | (x - 1) : 켜기. 0100 -> 0111

            x & (x + 1) : 끄기. 1011 -> 1000 -> 0000


        7. 좌 선형 후행비트만 켜고 끄기

            ~x & (x - 1)  or ~(x | -x)  or(x & -x) - 1

            0100 1000 -> 0000 0111

            ~x | (x + 1)

            1010 0111 -> 1111 1000


        8. 좌 선형 비트 끄기

            ~x | (x + 1) : 0110 1110 -> 0110 0000

                           0101 1100 -> 0100 0000



    b.절댓값 (32bit)

        y := x >>s 31 이라 둔다.


        1. abs

            (x ^ y) - y or(x + y) ^ y or  x - ((x << 1) & y)


            참고: mov eax, x

                 cdq

                 xor eax, edx

                 sub eax, edx


        2. nabs(-abs)

            y - (x ^ y)  or(y - x) ^ y or((x << 1) & y) - x



    c.두 수의 평균값 계산


        1. u일반적으로

            (x + y) >> 1


        2. u오버플로없이 계산

            Floor   : (x & y) + ((x ^ y) >>u 1)

            Ceiling : (x | y) - ((x ^ y) >>u 1)


        3. s오버플로없이 계산

            t := (x & y) + ((x ^ y) >>s 1) 라 하자

            Floor : t + ((t >>u 31) & (x ^ y))



    d.부호 함수(x<0 -> -1, x=0 -> 0, x>0 -> 1 )


        1. (x >>s 31) | (-x >>u 31)


        2. (-(x >>u 31)) | (-x >>u 3)



    e.다중 바이트 연산


        1. 덧셈

            ((x ^ y) & 0x80808080) ^ ((x & 0x7f7f7f7f) + (y & 0x7f7f7f7f))


        2. 뺄셈

            ((x ^ y) | 0x7f7f7f7f) ^ ((x | 0x80808080) - (y & 0x7f7f7f7f))



    f.레지스터 값 교환

        x := x ^ y

        y := y ^ x

        x := x ^ y

        

        x := x + y

        y := x - y

        x := x - y



    g.교대 설정


        1. 2개의 변수

            if (equal x a)

            x = b

            else x = a

            

            x := a + b - x or  x := a ^ b ^ x


        2. 3개의 변수

            if (equal x a)

            x = b

            else if (eqaul x b)

            x = c

            else

            a

            

            (( -(x = c)) & (a - c)) + (( -(x = a)) & (b - c)) + c

            or

            (( -(x = c)) & (a ^ c)) ^ (( -(x = a)) & (b ^ c)) ^ c



    h. 8의 배수 반올림/반내림


        1. 반올림

           (x + 7) & -8  or x + (-x & 7)

       

        2. 반내림

            x & -8

           (x >>u 3) << 3




아오 힘들어 다음 편은


    ㄴ.중간/활용 + 설명


        a.경계 점검


        b.비트 수 세기(pop count)


        c.워드 검색


        d.비트 바이트 뒤집기


언제 올라올지는 모릅니다.

추천 비추천

11

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 며느리, 사위되면 시댁, 처가에 잘할 것 같은 스타 운영자 25/10/13 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47976 65
2896733 치토스 모모링 ♥덩냥이♥갤로그로 이동합니다. 07:59 12 0
2896732 인지과학조져라 손발이시립디다갤로그로 이동합니다. 07:17 11 0
2896731 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥덩냥이♥갤로그로 이동합니다. 07:09 10 0
2896730 M5 램 용량 그대로네 거름 ♥덩냥이♥갤로그로 이동합니다. 07:07 19 0
2896729 30대 문과 한미 이중국적자 it나 인공으로 빅테크취업하는법좀요 ㅇㅇ(59.23) 06:47 23 0
2896727 음기 충전 발명도둑잡기(211.246) 03:10 41 0
2896726 IT 쪽 프리랜서 가능한 직업 뭐 있지 [3] 프갤러(67.162) 02:50 39 0
2896725 와 한국인 가술력 개쩐다 ㄷㄷ ㅇㅇ(106.101) 02:20 46 0
2896724 만약에 캄보디아에서 이재용 아들 납치되면 무슨일 벌어짐 ?? [1] ㅇㅇ(223.39) 02:11 56 0
2896721 귀무가설 발명도둑잡기(211.246) 01:07 20 0
2896720 그냥 갑자기 궁금한건데 캄보디아 사람하나 빼내오는게 힘든일임?? [1] ㅇㅇ(223.39) 00:50 36 0
2896718 음악 관련 기술 서비스 10선 발명도둑잡기(211.246) 00:40 19 0
2896717 반대로 생각할 줄 알아야한다. [1] 프갤러(110.8) 00:37 57 0
2896715 번역은 중국모델이 제일 좋음. 이유가 [2] ㅆㅇㅆ(113.192) 00:24 50 0
2896714 요즘 느끼는게 AI 나오고나서 AI번역 쓰니까 좆되지 않냐? [3] ㅆㅇㅆ(113.192) 00:21 60 0
2896713 업계 선배에게는 배울것이 반드시 하나쯤은 있다 [4] 박민준갤로그로 이동합니다. 00:18 65 1
2896710 SSH로 접속 가능한 채팅+BBS 만들었습니다 [3] 파란빤스갤로그로 이동합니다. 10.15 73 0
2896706 美 공화당 MZ 간부들 채팅기록 유출…노예제·히틀러 칭송 발명도둑잡기(211.246) 10.15 30 0
2896705 근데 생각해보면 담배값 존나 비싼거네 ㅇㅅㅇ ㅇㅇ(223.39) 10.15 34 0
2896698 윈도우 ui를 맥이나 태블릿처럼 쫀득쫀득한 느낌나게 바꾸는 법은 없나요 [2] 프갤러(211.192) 10.15 62 0
2896695 리눅스 쓰는 사람 있나요 [9] 프갤러(211.192) 10.15 139 0
2896694 클린 아키텍처말고 [4] 루도그담당(58.239) 10.15 75 0
2896693 근데 확실히 내 이해가 좀 많이 얕노 [2] ㅆㅇㅆ(113.192) 10.15 81 0
2896692 갤러리 존나 기괴하네 [1] 프갤러(106.101) 10.15 82 6
2896691 세상엔 올바른 코드는 없지만 유지보수하기 쉬운 코드는 존재한다 프갤러(61.75) 10.15 30 0
2896690 [해설] 미국 셧다운 장기화, 어디까지 번질까? 발명도둑잡기(211.246) 10.15 19 0
2896689 그냥 타입참조가 밖에서 안으로 흐른다 <<이거 하나로 이해해 [8] ㅆㅇㅆ(113.192) 10.15 91 0
2896687 미제국주의 침략의 도구가 된 노벨평화상 발명도둑잡기(211.246) 10.15 17 0
2896686 도메인 << 워딩 보면 볼수록 병신같음 루도그담당(58.239) 10.15 44 0
2896685 "10·15 부동산 대책, 文 떠올리게 해"…경실련·참여연대도 비판 발명도둑잡기(211.246) 10.15 23 0
2896683 보통 안드로이드 클린 아키텍쳐라는게 대략 이런구조잖아 [5] ㅆㅇㅆ(113.192) 10.15 78 0
2896679 전체 맥락을 이해 못하니 좀 쉽게 설명해줌 [3] ㅆㅇㅆ(113.192) 10.15 65 0
2896678 미래의 여사친한테 텔레파시를 받았다 [1] 발명도둑잡기(211.246) 10.15 30 0
2896676 124.48은 좀 아스퍼거라 이 문맥적인 판단력이 떨어지는거 같음. [1] ㅆㅇㅆ(113.192) 10.15 49 0
2896674 근데 프로그래밍 이야기하다보면 맨날 실없는 소리 밖에 못하게됨 [2] ㅆㅇㅆ(113.192) 10.15 53 0
2896673 최원종 시즌2 예감 발명도둑잡기(211.246) 10.15 74 0
2896672 이 대사가 자토이치 오마주엿넹 ㄷㅅㄷ ♥덩냥이♥갤로그로 이동합니다. 10.15 20 0
2896671 클린 아키텍쳐를 선택하는 건 낮은 비용이라서 그런거임 [4] ㅆㅇㅆ(113.192) 10.15 58 1
2896670 칼집이 없는 칼 같이 날카로운 삶 [1] ♥덩냥이♥갤로그로 이동합니다. 10.15 33 0
2896669 형태에 집착하면 기능을 잃게 됨. 근데 보통 형태에 집착하지 ㅆㅇㅆ(113.192) 10.15 20 0
2896668 가령 프레임워크에 따라서 트랙잭션 모델이 다르고 ㅆㅇㅆ(113.192) 10.15 20 0
2896667 어차피 설계라는게 프레임워크에 따르게 되있어서 어떤 프레임워크 선택하는가 [1] ㅆㅇㅆ(113.192) 10.15 48 1
2896666 와이파이로 휴대폰에 바이러스 심는거 가능? ㅇㅇ(146.70) 10.15 15 0
2896665 자토이치 보구 뭔가 생각이 바겻당 ♥덩냥이♥갤로그로 이동합니다. 10.15 53 0
2896664 기능 구현만 잘하는 개발자인데 더 잘하고 싶어 (조언부탁) [21] 프갤러(112.149) 10.15 116 0
2896660 연락와서 처리중 ㅆㅇㅆ(113.192) 10.15 27 0
2896656 유튜브 ui왜 개병신됨?? 진짜 왜 그러는거임 ㅇㅇ(223.39) 10.15 30 0
2896655 자토이치 ㄹㅇ 존나 머싯따.. 낭만검객.. ♥덩냥이♥갤로그로 이동합니다. 10.15 26 0
2896652 저장용 ♥덩냥이♥갤로그로 이동합니다. 10.15 20 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2