파이썬에서 비트 시프트 연산을 수행하는 방법을 이해하려고합니다. C#에서 오는 것과 같은 방식으로 작동하지 않습니다.파이썬에서 16 진수로 비트 시프트
C# 코드는 다음과 같습니다.
var plain=0xabcdef0000000; // plaintext
var key=0xf0f0f0f0f123456; // encryption key
var L = plain;
var R = plain>>32;
출력은 다음과 같습니다.
000abcdef0000000 00000000000abcde
파이썬에서 equivilent 란 무엇입니까? 나는 노력했다.
plain = 0xabcdef0000000
key = 0xf0f0f0f0f123456
print plain
left = plain
right = plain >> 32
print hex(left)
print hex(right)
그러나 작동하지 않습니다. 결과는 파이썬에서 다릅니다. 0의 패딩이 없습니다. 어떤 도움을 주시면 감사하겠습니다!
정확히 "작동하지 않는다"는 것을 의미합니까? – ch3ka
파이썬 버전에서 동일한 출력을 얻지 못했습니다. 패딩 된 0이 없습니다. –
하지만'0x00000000000abcde == 0xabcde'라는 것을 알고 있습니까? 어쨌든, 인쇄를 위해, '문자열 포맷팅'이 트릭을 할 것입니다. – ch3ka