如何在objective-c中将字节值转换为int

时间:2010-04-27 04:22:08

标签: objective-c iphone c integer byte

请告诉我如何在iPhone编程的objective-c中将字节转换为NSInteger / int?

5 个答案:

答案 0 :(得分:5)

“Bytes”是什么意思? 如果要将表示整数值的单字节转换为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取决于这些数据的结构:每个值有多少字节,有符号或无符号。

答案 1 :(得分:4)

如果按字节表示无符号的8位值,则执行以下操作。

uint8_t foo = 3;   // or unsigned char foo...
NSInteger bar = (NSInteger) foo;

甚至

NSInteger bar = foo;

答案 2 :(得分:1)

NSInteger x = 3;
unsigned char y = x;
int z = x + y;

答案 3 :(得分:1)

我的猜测:

unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);

NSLog(@"data:%d", intData); // data:675611136
NSLog(@"data:%08x", intData); // data:28450200

所以,要注意字节顺序。

答案 4 :(得分:-4)

使用“=”运算符。