2014-11-24 1 views
1

두 개의 16 진 문자열 사이의 해밍 거리를 계산하려고합니다. 우선, 문자열 (10)의 기준으로 기지국 (16)에서 변환되어 그들은 xor의되고 비트 카운트 :이 MySQL XOR 쿼리가 0을 반환하는 이유는 무엇입니까?

SELECT (CONV('b4124b0d195b2507', 16, 10))^(CONV('eae26aebf1f139f9', 16, 10));

이 독립적으로 실행 0

결과

SELECT (CONV('b4124b0d195b2507', 16, 10));

SELECT (CONV('eae26aebf1f139f9', 16, 10));

내가 예상 한 대답을 알려주십시오 (12975515996039881991 및 16925207911220722169).

내 논리의 결함은 어디에 있습니까?

답변

0
SELECT CONVERT((CONV('b4124b0d195b2507', 16, 10)), SIGNED)^CONVERT((CONV('eae26aebf1f139f9', 16, 10)), SIGNED) 

은 기지에서

to_base베이스로 from_base 변환

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_conv

은 숫자 N의 스트링 표현을 돌려줍니다 워드 프로세서, 따라

전환 수를 원하는 것입니다

xor에 숫자로 다시 변환해야합니다

+0

게시 한대로 알았습니다. 감사! – smang

관련 문제