如何在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 

所以,要注意字节顺序。

使用“ = ”运算符。