It seems that ntohl doesn't understand about unsigned values, at least on Win32:
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from struct import pack, unpack
>>> pack('L', -1)
'\xff\xff\xff\xff'
>>> unpack('L', '\xff\xff\xff\xff')
(4294967295L,)
>>> from socket import ntohl
>>> ntohl(4294967295L)
-1Kent
Loptr Chaote wrote:
Hello everyone!
I'm having problems with signed/unsigned (32bit) integers in python. Example code:
seq = 0L seq = socket.ntohl(struct.unpack("L", data[38:42])[0]) print seq
This sometimes produces a negative output, how is that possible since I booth initialized seq with "0L" and also specified "L" in unpack()?
-L.C _______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor
_______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor
