如何将缓冲区中的大整数读入iOS中的整数?

如何将缓冲区中的大整数读入iOS中的整数?,ios,xcode,buffer,Ios,Xcode,Buffer,在iOS中,我很难从缓冲区中获取整数 要读取字符串,我将使用: output = [[NSString alloc] initWithBytes:buffer lenght:len encoding:NSASCIIStringEncoding]; 但似乎没有一个等价的initWithBytes来表示整数 提前感谢, Dave这是因为缓冲区可以直接转换为整数值 int original = 0xBADF00D; void *buffer = &original; //Cast the

在iOS中,我很难从缓冲区中获取整数

要读取字符串,我将使用:

output = [[NSString alloc] initWithBytes:buffer lenght:len encoding:NSASCIIStringEncoding];
但似乎没有一个等价的initWithBytes来表示整数

提前感谢,


Dave

这是因为缓冲区可以直接转换为整数值

int original = 0xBADF00D;
void *buffer = &original;

//Cast the void* as an int* and then dereference the value
int intFromBuffer = *(int*)buffer;

NSLog(@"0x%X 0x%X", original, intFromBuffer);
输出:


0xBADF00D 0xBADF00D

这是因为缓冲区可以直接转换为整数值

int original = 0xBADF00D;
void *buffer = &original;

//Cast the void* as an int* and then dereference the value
int intFromBuffer = *(int*)buffer;

NSLog(@"0x%X 0x%X", original, intFromBuffer);
输出:


0xBADF00D 0xBADF00D

你好,乔,谢谢你!我假设这将适用于非常大的数字?确保-刚刚让谷歌将10亿转换成十六进制,并查看intFromBuffer,它成功了!是的,它可以处理非常大的数字,但请确保使用正确的整数大小来表示缓冲区中的内容。如果缓冲区指向32位无符号整数,则使用32位无符号整数,64位数字也是如此。这一点很重要,这样你就不会有垃圾号或更糟糕的读取内存,你没有访问权。嗨,乔,谢谢你!我假设这将适用于非常大的数字?确保-刚刚让谷歌将10亿转换成十六进制,并查看intFromBuffer,它成功了!是的,它可以处理非常大的数字,但请确保使用正确的整数大小来表示缓冲区中的内容。如果缓冲区指向32位无符号整数,则使用32位无符号整数,64位数字也是如此。这一点很重要,这样您就不会得到垃圾号或更糟糕的读取内存,而您无法访问这些内存。