views:

1450

answers:

1

I need to convert unicode strings in Python to other types such as unsigned and signed int 8 bits,unsigned and signed int 16 bits,unsigned and signed int 32 bits,unsigned and signed int 64 bits,double,float,string,unsigned and signed 8 bit,unsigned and signed 16 bit, unsigned and signed 32 bit,unsigned and signed 64 bit.

I need help from u people.

+5  A: 

use int() to convert the string to an integer. Python doesn't have different fixed-width integers so you'll just get one type of thing out.

Then use struct to pack the integer into a fixed width:

res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t

res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t

res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t

res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t

res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double

struct produces a byte-string containing the number in binary.

EDIT: From the comments it sounds like you just want to convert the string (of decimal digits) into an integer. Just use int() for that, however you won't get all the complicated overflow/underflow semantics of the specified types. You can't reproduce that in python, at least not without writing a whole lot of code.

I think if you want any more help you'll have to be more precise about what you want to achieve.

Douglas Leeder
@Douglas: I admire your psychic abilities (that, or your luck :). I still can't see a direct connection from the question —as specified— to “use int() to convert the string to an integer”… I would only suggest the struct module.
ΤΖΩΤΖΙΟΥ
but type of res is string.So i m not able to do any operations on it.I m converting here to perform such arithmetic operations.Its not possible.