当前位置:  技术问答>linux和unix

int 和longlong类型最大值,好郁闷的问题啊.

    来源: 互联网  发布时间:2016-10-18

    本文导语:  我今天测试了下,int 和 unsigned  int,long long 和unsigned  long long的最大值问题. 首先我们来认识下如何求最大值: int           ->32位,最高位是正负位所以实际值只有31位,那它的最大值=2^31-1 = 2147483647. unsigned  i...

我今天测试了下,int 和 unsigned  int,long long 和unsigned  long long的最大值问题.
首先我们来认识下如何求最大值:
int           ->32位,最高位是正负位所以实际值只有31位,那它的最大值=2^31-1 = 2147483647.
unsigned  int ->2^32 -1 = 4294967295
long long     ->2^63 -1 = 92233720368547758007
unsigned  long long ->2^64-1=18446744073709551615

那么我们现在用程序来测试下:
#include 
#include 

typedef long long INT64;
typedef unsigned  long long INT64U;
typedef  int INT32;
typedef unsigned  int INT32U;

int main(int argc, char* argv[])
{
INT32 it1 = 2147483647;             //2^31-1
INT64 it2 = 92233720368547758007;   //2^63-1
INT32U it3= 4294967295;             //2^32-1
INT64U it4= 18446744073709551615;  //2^64-1
printf("it1=%d,it2=%d,it3=%d,it4=%dn",sizeof(it1),sizeof(it2),sizeof(it3),sizeof(it4));
printf("it1=%d,it2=%lld,it3=%d,it4=%lld n",it1,it2,it3,it4);
return 0;
}

但是在it2,it3,it4编译器都给出了同样的警告:
warning: this decimal constant is unsigned only in ISO C90
warning: integer constant is too large for "long" type
只有it1才算正常.

实际输出是:
it1=4,it2=8,it3=4,it4=8
it1=2147483647,it2=-73,it3=-1,it4=-1 

输出也不正常,都说明是越位了,但是我这都是最大值,为什么会产生这样的情况,那这些it2,it3,it4的最大值到底是多少呢.

|

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编程语言 iis7站长之家
  • 如何实现float 到 int 的类型转换,string 到 int 的类型转换?
  • 比如一个"123456" 如何转化成 int类型然后和int型比较
  • 表格控件的getValueAt(int,int)返回的什么类型,要转换成String该怎么做?
  • 如何把string类型的转化成int类型的?
  • (在线等)无符号int类型如何向ip类型进行转换呢
  • 怎样把一个int类型(不是Integer)转换才String类型?
  • 如何把int类型的转化成String类型的
  • 请教JAVA小问题:如何将含数字的String类型的对象转化为int或long类型
  • 在纯C当中是否支持多态,例如int abc(int a);int abc(char b);系统会根据不同的参数类型,调用不同的函数
  • 如何把int转化成string类型
  • 请问用request.getParameter("title")获得参数后如何转成int类型
  • 怎样把double 转换为int 类型?
  • int,word等数据类型所占的字节数!
  • 请问各位大虾,怎样把一个string类型变量转变成int型?
  • 请问LINUX 下 _int64类型是怎么定义的啊
  • int类型的数组是对象吗?
  • 怎样把String转换成int?怎样获得系统时间并转换成java.sql.date类型?
  • python类型强制转换long to int的代码
  • 菜问题:如何进行数据类型的转化,比如int转化为string
  • java命名空间javax.lang.model.type枚举typekind的类成员方法: int定义及介绍
  • 这个构造函数new String(byte[],int,int,int)怎麽用?谢谢!
  • java命名空间java.awt.image类databuffer的类成员方法: type_int定义及介绍
  • 我是初学者,问一个比较傻的问题:既然JAVA是一种纯面向对象的语言,那么为什么int i=new int()或int i=new int(1)不能通过编译?谢谢。
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_argb_pre定义及介绍
  • void(*signal(int signo,void(*func)(int)))(int)又有问题了
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_rgb定义及介绍
  • invalid conversion from `int (*)(int)' to `void (*)(int)',这个怎么转换
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_argb定义及介绍
  • void(*signal(int signo,void(*func)(int)))(int)
  • java命名空间java.awt.image类bufferedimage的类成员方法: type_int_bgr定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3