«bit-manipulation» 태그된 질문

개별 비트 조작. 사용되는 연산자에는 비트 AND, OR, XOR, NOT, 왼쪽 시프트 및 오른쪽 시프트가 포함될 수 있습니다.

12
모든 문자가 고유한지 확인하기 위해 비트 벡터 사용을 설명하십시오.
비트 벡터가 어떻게 작동하는지 혼란 스럽습니다 (비트 벡터에 익숙하지 않음). 주어진 코드는 다음과 같습니다. 누군가 나를 통해 안내해 주시겠습니까? public static boolean isUniqueChars(String str) { int checker = 0; for (int i = 0; i < str.length(); ++i) { int val = str.charAt(i) - 'a'; if ((checker & (1 << …


10
소문자를 대문자로 또는 그 반대로 변환하는 ^ = 32의 아이디어는 무엇입니까?
codeforces에서 몇 가지 문제를 해결하고있었습니다. 일반적으로 먼저 문자가 영문 또는 대문자인지 확인한 다음 빼거나 추가 32하여 해당 문자로 변환하십시오. 그러나 나는 누군가가 ^= 32똑같은 일을한다는 것을 알았 습니다. 여기있어: char foo = 'a'; foo ^= 32; char bar = 'A'; bar ^= 32; cout << foo << ' ' << …

9
XOR이 해시를 결합하는 기본 방법 인 이유는 무엇입니까?
두 개의 해시가 H(A)있고 H(B)이를 결합하려고 한다고 가정하십시오 . 나는 두 개의 해시를 결합하는 좋은 방법이 XOR그들에게 있다는 것을 읽었습니다 XOR( H(A), H(B) ). 내가 찾은 가장 좋은 설명은 다음 해시 함수 지침 에 간략하게 설명되어 있습니다 . 대수 분포가 거의없는 두 숫자를 XOR하면 대수 분포가 다른 수는 여전히 발생하지만 …

8
'and'(boolean) vs '&'(bitwise)-왜리스트와 numpy 배열의 동작에 차이가 있습니까?
목록과 NumPy 배열에서 부울 연산과 비트 연산의 동작의 차이점은 무엇입니까? 다음 예제와 같이 Python에서 &vs and를 올바르게 사용하는 것에 대해 혼란 스럽습니다 . mylist1 = [True, True, True, False, True] mylist2 = [False, True, False, True, False] >>> len(mylist1) == len(mylist2) True # ---- Example 1 ---- >>> mylist1 and …

3
이 임의의 값에 50/50 대신 25/75 분포가있는 이유는 무엇입니까?
편집 : 기본적으로 내가 작성하려고하는 것은 1 비트 해시입니다 double. double에 true또는 false50/50 기회 를 매핑하고 싶습니다 . 이를 위해 임의의 숫자를 선택하는 코드를 작성 했습니다 (예를 들어, 규칙이있는 데이터에 이것을 사용하고 여전히 50/50 결과를 얻고 싶습니다) . 마지막 비트를 확인하고 y1인지 아니면 증가 하는지 n확인하십시오. 0. 그러나이 코드는 지속적으로 …


15
#define, enum 또는 const를 사용해야합니까?
내가 작업하고있는 C ++ 프로젝트 에는 4 가지 값을 가질 수 있는 플래그 종류의 값이 있습니다. 이 네 가지 플래그를 결합 할 수 있습니다. 플래그는 데이터베이스의 레코드를 설명하며 다음과 같습니다. 새로운 기록 삭제 된 레코드 수정 된 레코드 기존 기록 이제 각 레코드에 대해이 속성을 유지하려고하므로 열거 형을 사용할 수 …

22
설정된 최하위 비트의 위치
정수로 설정된 최하위 비트의 위치를 ​​결정하는 효율적인 방법을 찾고 있습니다. 예를 들어 0x0FF0의 경우 4가됩니다. 사소한 구현은 다음과 같습니다. unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) { value >>= 1; ++pos; } return pos; } 그것에서 일부 사이클을 짜내는 …

27
C의 정수에서 가장 높은 설정 비트 (msb)를 찾는 가장 빠르고 효율적인 방법은 무엇입니까?
정수 n이 있고 최상위 비트의 위치를 ​​알고 싶다면 (즉, 최하위 비트가 오른쪽에 있으면 가장 먼 왼쪽 비트 인 1의 위치를 ​​알고 싶습니다), 가장 빠르고 효율적인 방법은 무엇입니까? POSIX가 ffs()첫 번째 세트 비트를 찾기 위해 strings.h 의 메서드를 지원한다는 것을 알고 있지만 해당하는 것 같지 않습니다.fls() 메서드 . 내가 놓친 정말 …


30
C / C ++에서 바이트의 비트 순서를 바꾸는 가장 간단한 방법은 무엇입니까?
한 바이트에서 비트 순서를 바꾸는 방법은 여러 가지가 있지만 개발자가 구현하는 "가장 간단한"것이 무엇인지 궁금합니다. 그리고 반전하면 다음을 의미합니다. 1110 -> 0111 0010 -> 0100 이것은 이 PHP 질문 과 비슷하지만 중복되지는 않습니다 . 이것은 이 C 질문 과 유사하지만 중복되지는 않습니다 . 이 질문은 개발자가 구현하는 가장 쉬운 방법을 …
110 c++  c  bit-manipulation 

16
비트 연산 및 사용
이 코드를 고려하십시오. x = 1 # 0001 x << 2 # Shift left 2 bits: 0100 # Result: 4 x | 2 # Bitwise OR: 0011 # Result: 3 x & 1 # Bitwise AND: 0001 # Result: 1 나는 파이썬 (및 다른 언어)의 산술 연산자를 이해할 수 있지만 …



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.