Hello,
Please tell me how to convert bytes to NSInteger/int in objective-c in iPhone programming?
Hello,
Please tell me how to convert bytes to NSInteger/int in objective-c in iPhone programming?
If by byte, you mean an unsigned 8 bit value, the following will do.
uint8_t foo = 3; // or unsigned char foo...
NSInteger bar = (NSInteger) foo;
or even
NSInteger bar = foo;
Your question is not related with Objective-C, it is just pure c, and it should be tagged "c".
What do you mean by "Bytes"? If you want convert single byte representing integer value to int (or NSInteger) type, just use "=":
Byte b = 123;
NSInteger x;
x = b;
as Byte (the same as unsigned char - 1 byte unsigned integer) and NSInteger (the same as int - 4 bytes signed integer) are both of simple integer types and can be converted automatically. Your should read more about "c data types" and "conversion rules". for example http://www.exforsys.com/tutorials/c-language/c-programming-language-data-types.html
If you want to convert several bytes storing some value to int, then convertion depends on structure of these data: how many bytes per value, signed or unsigned.
My guess:
unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);
NSLog(@"data:%d", intData); // data:675611136
NSLog(@"data:%08x", intData); // data:28450200
So, beware of byte-order.