请告诉我如何在iPhone编程的objective-c中将字节转换为NSInteger / int?
答案 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)
使用“=
”运算符。