ve 3 int.from_bytes ve piton 3 yöntem int.from_bytes inşa etti. Eşdeğer python 2.7'de var mı, yoksa bu kodu 2.7 ve 3 uyumlu hale getirmenin en iyi yolu hangisidir?piton 2.7 eşdeğer uyumlu
>>> int.from_bytes(b"f483", byteorder="big")
1714698291
ve 3 int.from_bytes ve piton 3 yöntem int.from_bytes inşa etti. Eşdeğer python 2.7'de var mı, yoksa bu kodu 2.7 ve 3 uyumlu hale getirmenin en iyi yolu hangisidir?piton 2.7 eşdeğer uyumlu
>>> int.from_bytes(b"f483", byteorder="big")
1714698291
(Python 2 spesifik):
>>> int('f483'.encode('hex'), 16)
1714698291
Veya Python 2 ve Python 3'te:
>>> int(codecs.encode(b'f483', 'hex'), 16)
1714698291
avantajı dize sınırlı değildir olduğunu belirli bir boyut varsayımına. Dezavantajı imzasızdır.
hah Ben bu çözümü sevdim ... alot ... Ben onun düşüncesi olmazdı :) giriş –
hakkında bir şey bilmek zorunda değilsiniz avantajı vardır Yours daha iyi gerçekten Python 2 ve – dawg
tho 3. teşekkürler codecs.encode sizinki de –
struct.unpack(">i","f483")[0]
belki?
>
big-endian anlamı ve i
vasıta 32 bit
bu –
O 'olmalı ... python2 ve 3'de struct.unpack çalışması gerekir ("> i", "f483") [0]'. Bakınız [burada] (http://repl.it/pIt). – mbomb007
elbette int32 daha büyük bir şey için çalışmaz. herhangi bir ipucu? –
kullanın struct
modül tamsayılar içine bayt açmak için. Bir kodlama gibi davranabilirsiniz
import struct
>>> struct.unpack("<L", "y\xcc\xa6\xbb")[0]
3148270713L
sadece onları baytlara çözüyor ... hepsini 1 32 bit tamsayı olarak istiyor ... belki daha büyük ... ama sen bu doğruyu kullanmak için kullanacağın modül ... –
Gerçek şeye ihtiyacı olduğunu anlamadım tamsayı değerleri, ama evet, sabit. – SanketDG
Özellikle çapraz sürüm çözüm arıyorsanız o zaman başlığında bu açıklığa kavuşturmak gerekir. –