如何在objective-c中将字节值转换为int
请告诉我如何在iPhone编程中将字节转换为Objective-c中的NSInteger / int?
你对“字节”是什么意思? 如果要将表示整数值的单字节转换为int(或NSInteger)类型,只需使用“=”:
Byte b = 123; NSInteger x; x = b;
as Byte(与unsigned char – 1字节无符号整数相同)和NSInteger(与int – 4字节有符号整数相同)都是简单整数类型,可以自动转换。 您应该阅读有关“ c数据类型 ”和“ 转换规则 ”的更多信息。 例如http://www.exforsys.com/tutorials/c-language/c-programming-language-data-types.html
如果要将存储某些值的多个字节转换为int,则convertion取决于这些数据的结构:每个值有多少字节,有符号或无符号。
如果按字节,表示无符号8位值,则以下操作。
uint8_t foo = 3; // or unsigned char foo... NSInteger bar = (NSInteger) foo;
甚至
NSInteger bar = foo;
NSInteger x = 3; unsigned char y = x; int z = x + y;
我猜:
unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 }; NSInteger intData = *((NSInteger *)data); NSLog(@"data:%d", intData); // data:675611136 NSLog(@"data:%08x", intData); // data:28450200
所以,要注意字节顺序。
使用“ =
”运算符。