是否有一个常数来定义 long 或 integer 的最大值?
Posted
技术标签:
【中文标题】是否有一个常数来定义 long 或 integer 的最大值?【英文标题】:Is there a constant which defines the max value of long or integer? 【发布时间】:2012-03-18 17:49:03 【问题描述】:在java中,Long的最大值有一个常数。 如:
long minBillId = Long.MAX_VALUE
Obj-C中long或int的最大值有常数吗?
【问题讨论】:
【参考方案1】:如果你导入limits.h
你可以拨打LONG_MAX
作为参考,site 展示了如何获取所有类型的最大值:
#import <limits.h>
// ...
NSLog(@"CHAR_MIN: %c", CHAR_MIN);
NSLog(@"CHAR_MAX: %c", CHAR_MAX);
NSLog(@"SHRT_MIN: %hi", SHRT_MIN); // signed short int
NSLog(@"SHRT_MAX: %hi", SHRT_MAX);
NSLog(@"INT_MIN: %i", INT_MIN);
NSLog(@"INT_MAX: %i", INT_MAX);
NSLog(@"LONG_MIN: %li", LONG_MIN); // signed long int
NSLog(@"LONG_MAX: %li", LONG_MAX);
NSLog(@"ULONG_MIN not defined, it's always zero: %lu", 0);
NSLog(@"ULONG_MAX: %lu", ULONG_MAX); // unsigned long int
NSLog(@"LLONG_MIN: %lli", LLONG_MIN); // signed long long int
NSLog(@"LLONG_MAX: %lli", LLONG_MAX);
NSLog(@"ULLONG_MIN not defined, it's always zero: %llu", 0);
NSLog(@"ULLONG_MAX: %llu", ULLONG_MAX); // unsigned long long int
【讨论】:
【参考方案2】:INT_MAX 应解析为 2147483647
这个:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
NSInteger foo = INT_MAX;
NSLog(@"foo: %li", foo); // li because 64 bit OSX cmd line app
return 0;
输出:
2012-03-18 13:58:54.509 Craplet[51324:707] foo: 2147483647
【讨论】:
应该吗?还是总是因为语言规范这样说?【参考方案3】: NSLog(@"INT_MIN: %i", INT_MIN);
NSLog(@"INT_MAX: %i", INT_MAX);
NSLog(@"LONG_MIN: %li", LONG_MIN);
NSLog(@"LONG_MAX: %li", LONG_MAX);
【讨论】:
以上是关于是否有一个常数来定义 long 或 integer 的最大值?的主要内容,如果未能解决你的问题,请参考以下文章
Java中怎么将Long类型转换成Integer或int类型?