2013-05-25 4 views
-2

짧게 2자를하고 싶습니다.파이썬은 2자를 같은 단락에 결합합니다.

나는 그 (C 구문)을 수행 할 :

short var = (msg[4:5]<<8) | (msg[5:6]) 

너 한테 :

ord(msg[4:5) = 105 -> 0b1101001 

ord(msg[5:6) = 135 -> 0b10000111 

var = 0b1101001 <<8  eq 0b1101001 00000000  eq 0x6900 

var |= 0b10000111   eq 0b1101001 10000111  eq 0x6987 

var = 27015 

그래서 난 당신이 어떤 솔루션이있는 경우 숫자 값 결과로 원하는 ... 감사합니다

+1

정확히 무엇이 문제입니까? 그건 파이썬에서 작동하지 않았나요? 어떤 오류가 나타 났습니까? –

+1

당신은 이미 필요한 구문 요소 인'ord()','|'및'='를 발견했습니다. 그 밖의 무엇이 필요합니까? – glglgl

+0

참고 파이썬에서 짧은 것 같은 건 없다. – jamylak

답변

2
(ord(msg[4])<<8) + ord(msg[5]) 
+1

심령 디버깅 FTW. '+'대신'|'를 사용할 수 있습니다. –

+1

사실, msg [4]'또는'msg [4 : 5]'를 사용하는 것은 문자열에 상관이 없으므로 어느 쪽이라도 작동 할 것입니다. OP는 아직 질문을하고 있지 않습니다. –