32 位整数的最大值为:2^31-1 = 2147483647。但只有负数和正数。因为数字的一半是负数。所以真正的最大值是 2^32-1 = 4294967295。但在这种情况下,我们只使用正数。
好的,正常的 int 既是负数又是正数。我只想使用正数,因为我希望最大值为:4294967295。我将使用“unsigned int”而不是“int”
但这行不通!最大值仍然是 2147483647。
这是一个简单的随机数生成器的代码:
-(Action for my button) {
unsigned int minNumber;
unsigned int maxNumber;
unsigned int ranNumber;
minNumber=[self.textFieldFrom.text intValue]; //getting numbers from my textfields
maxNumber=[self.textFieldTo.text intValue]; //Should i use unsigned intValue?
ranNumber=rand()%(maxNumber-minNumber+1)+minNumber;
NSString *str = [NSString stringWithFormat:@"%d", ranNumber];
self.label.text = str;
}
这会将 : 2147483647 视为最大值。
怎么了?当我从我的文本字段中获取数字时,我应该使用 unsigned intValue 吗?
乔纳森
在这里您可以阅读有关此号码的信息。:http ://en.wikipedia.org/wiki/2147483647