나누기 알고리즘을 사용하지 않고 10 진수를 2 진수로 변환하는 함수가 있습니까? 두 숫자의 이진 형식의 다른 비트를 계산하려고합니다. like diff (0,2)는 1 비트입니다. 또는 diff (3,15)는 2 비트입니다. diff 함수를 작성하고 싶습니다. 감사합니다.이진 비교
이진 비교
답변
두 개의 숫자 중 xor에있는 비트를 계산하여 다른 비트 수를 찾을 수 있습니다. 이런 식으로.
int count_bits(unsigned int n) {
int result = 0;
while(n) {
result += 1;
// Remove the lowest bit.
n &= n - 1;
}
return result;
}
int diff(unsigned int a, unsigned int b) {
return count_bits(a^b);
}
어떻게 작동하는지 설명해 주시겠습니까? count_bits (a^b)가 어떻게 실행되는지 이해할 수 없습니까? –
저는 이것이 숙제라는 것을 알고 있습니다. 그 이상을 설명하기를 원할지도 모릅니다 : p –
@Ava는 XOR입니다. 나는 그것이 내 대답에서 의미하는 바를 설명했다. – littleadv
넌 (숫자에 XOR을 사용할 수있는 경우에 Z = X XOR Y 후 X 다르게 설정하고, Y는, Z에서 1 X에 동일하게 설정되고, 각 비트가 설정되는 각 비트 및 Y는 0으로 설정됩니다.) 간단한 루프와 시프트를 사용하여 결과 비트를 계산합니다.
모든 것이 이미 기술적으로 2 진수입니다. 보고있는 10 진수를 구성하는 개별 비트에 액세스하려면 비트 연산자를 살펴 보는 것부터 시작하면됩니다. 예를 들어
,
if (15 & 1) would check to see if 15 has its first bit turned on.
if (15 & 3) would check to see if its first 2 bits were turned on.
if (15 & 4) would check to see if its 3rd bit only was turned on.
당신은 및/또는/XOR/등으로이 작업을 수행 할 수 있습니다. 구글 비트 연산자와 읽기.
- 1. 이진 문자열 비교
- 2. 이진 메시지 비교
- 3. ruby 이진 문자열 비교
- 4. 중복 이진 표현의 비교 RBR
- 5. 비교 횟수로 이진 검색 최적화
- 6. 이진 문자열 비교/정렬 대 사전 문자열 비교/정렬
- 7. 비교 검색에서 이진 검색 및 eps
- 8. 자바 - 선형 검색과 이진 검색의 성능을 비교
- 9. Win/Linux 용 이진 비교 도구가 필요합니다.
- 10. 얼굴 인식 - 로컬 이진 패턴 히스토그램 비교
- 11. C에서 교차 플랫폼 네트워크 이진 파일 비교?
- 12. 이진 검색 C++ STL
- 13. MSBuild 또는 CCNet을 사용하여 이미지/파일의 이진 비교
- 14. 이진 비교 란 무엇이며 텍스트 공동과 다른 점
- 15. MySQL 비교 이진 데이터 정렬 대 바이너리 문자열
- 16. 이진 검색 질문
- 17. 비교 알고리즘
- 18. arraylist의 비교
- 19. gerrit에서 이미지 비교
- 20. 이진 부동 소수점 - 이진 변환
- 21. PHP에서 이진 파일을 자바 스크립트 이진 문자열로 출력
- 22. 비교 연산자로 배열 비교
- 23. 바이너리 비교 DLL
- 24. PostgreSQL utf8 문자 비교
- 25. SQL Server : 문자열 대 이진?
- 26. 비교
- 27. 비교
- 28. 비교
- 29. 비교
- 30. 비교
* "변환"* 무엇을 의미합니까? 어떤 숫자도 이진 형식의 * 이미 *입니다. 실제 저장 방법과 디스플레이가 혼란 스럽습니다. 그래도 기억해. 부동 소수점 숫자에 대해 비트 단위 연산을 수행하려는 경우 부동 소수점 숫자가 저장되는 방식을 알아야합니다. –
숫자는 이진 형식으로 저장되며 변환 할 필요가 없습니다. http://en.wikipedia.org/wiki/Hamming_distance를 찾고 있습니다. –
알아 두지 만 알고리즘을 나누지 않고 이진 형식의 숫자를 표시하는 방법은 무엇입니까? –