比unsigned long类型更大的数据类型是unsigned long long,此类型一般用于表示64位的整型变量,在vc开发环境中一般被typedef成__uint64。
long long 类型的范围是:-9223372036854775808~9223372036854775807
如果只用正数可以考虑用unsigned long long范围是:0~18446744073709551615
如果需要更大的数字可以考虑使用 数组来储存
参考大数运算
http://baike.baidu.com/link?url=k8bazo0BLv6YybBE1ZBBnFvoLVrXLiXkGg6w7tsMsZm6ToUPgxhhaDN6o53YjCGl0T69qUFkfzF-RbPFxaGa_a
定义示例如下
//windows的vc /vs开发环境中
__int64 i = 0;
//linux gcc/g++编译环境中
unsigned long long i = 0
非常简单,实用typedef关键字即可。
如typedef long long bit64_t;即定义一个64位的变量,而unsigned long 为32位的类型。不过long long是C99标准新加的,64位长整形,某些老古董编译器不支持该类型,所以如果要使用的话要注意编译器对C标准的支持,如果不支持可以使用编译器自定义的长整形(如VC的__int64)。
1 如果系统支持64为整型,可以直接使用。
如VC/VS可以使用_int64, 而gcc可以使用long long。
2 如果系统不支持,可以使用字符串模拟。
如用字符串"11223344556677889900"表示一个大数。
你可以定义 long long类型,但是需要你的编译器支持。
unsigned double 和unsigned float 是不能用的,因为float 和double 的第一个位默认是符号位,而 unsigned 是使得符号位无效这样定义无意义。
某些编译器下unsigned float 和 unsigned double会被自动转换成unsigned int 类型
用long long 这是最大的类型