int ,long , long long , __int64类型的范围

首先见测试代码(在g++/gcc下运行):

#include<iostream>
using namespace std;
int main()
{
	cout<<sizeof(int)<<endl;
	cout<<sizeof(unsigned int)<<endl;
	cout<<sizeof(long)<<endl;
	cout<<sizeof(unsigned long)<<endl;
	cout<<sizeof(long long)<<endl;
	cout<<sizeof(unsigned long long)<<endl;
	cout<<sizeof(__int64)<<endl;
	cout<<sizeof(unsigned __int64)<<endl;
	return 0;
}

  运行结果为:4 4 4 4 8 8 8 8(均为字节)

有结果可知:int , long , long long , __int64的范围如下:

int   -2147483648~2147483647

unsigned int   0~4294967295

long   -2147483648~2147483647

unsigned long 0~4294967295

long long   -9223372036854775808~9223372036854775807

unsigned long long的最大值:18446744073709551615

__int64  -9223372036854775808~9223372036854775807

unsigned __int64的最大值:18446744073709551615

时间: 2024-12-10 18:43:54

int ,long , long long , __int64类型的范围的相关文章

Int[]是引用类型还是值类型

分析问题 .NET所有数据都以类型的方式表示,数组也不例外.存储不同类型项目的数组都是一个类型,.NET会自动地为数组生成新的类型.例如下列申明: DateTime[] times; CLR就会在运行时创建一个DateTime[]类型,所以数组类型可以说是一个类型族,而它们的共性就是所有的数组类型继承自System.Array,这种设计方式和委托非常类似,委托的概念将在后面的章节有所覆盖.System.Array实现了多个接口,并且直接继承自System.Object,从中可以得出结论:所有的数

从一个int值显示相应枚举类型的名称或者描述

我正在做一个出入库管理的简单项目,在Models里定义了这样的枚举类型 public enum InOrOut { [Description("出库")] Out = 0, [Description("入库")] In = 1 } 我想在输入参数为数据库字段值1或者0的时候,在页面上显示为枚举Name:In.Out,或者干脆显示为Description:出库.入库. 获取枚举Name其实很简单: return Enum.GetName(typeof(InOrOut)

c语言中的 int (*p)[5] 类型分析

#include<stdio.h> int main() { int i; int  b[5]={1,3,5,7,9}; int  (*a)[5] = &b; int  *m = a;        //a范围内的空间按照 int大小来取值 for(i = 0;i<5;i++) { printf("%d\n",m[i]); } return 0; } 输出结果为 1 2 3 4 5 其中  int  (*a)[5]  表示在栈中产生一个大小为   5个int的

java中int,char,string三种类型的相互转换

如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将字串 String 转换成Integer ? Integer integer=Integer.valueOf(str); 如何将整数 int 转换成字串 String ? 1.) String s = String.valueOf(i); 2.) String s = Integer.toStrin

[转] java中int,char,string三种类型的相互转换

原文地址:http://blog.csdn.net/lisa0220/article/details/6649707 如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将字串 String 转换成Integer ? Integer integer=Integer.valueOf(str); 如何将整数 int 转换成字串 String ? 1.) S

java对byte,short,char,int,long运算时自动类型转化情况说明

大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下: 一.算术运算符 单目运算符:+(取正)-(取负) ++(自增1) --(自减1) 1.1 +(取正)-(取负) 当操作数是byte,short,char时,会自动转化为int类型:返回结果为int. 当操作数是int,long时,不转化,原来是啥类型,还是啥类型. 1.2 ++(自增1) --(自减1) 不管操作数是啥类型,不转化. 双目运算符:+ - * / %(取余) 1.3 + - * /

asp.net C# int 类型在32/64位环境下取值范围无变化

最近在学习中突然想到,我在64位环境下,int取值范围是否有变化?为了检测这个结果,我做了以下这个测试:1.环境:win7旗舰版64位+vs2010 sp1(版本号:10.0.40219.1SP1Rel)+.Net 4.0.30319 SP1Rel2.代码: 代码如下 复制代码 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplicatio

int (*(*fp)(void *))[10]; 指向函数的指针类型

<pre lang="c" escaped="true">int (*(*fp)(void *))[10]; //这个类型用typedef分解出来 // 第一步:此指针是一个指向函数T1的指针typedef int (*T1(void *))[10];T1 *fp; // 第二步:T1 是一个函数,返回值是T2,参数为(void *)typedef int (*T2)[10];typedef T2 T1(void *);T1 *fp; // 第三步:T2

getchar返回int类型

#include <stdio.h> /* copy input to output; 2nd version */main(){int c;c = getchar();while(c != EOF){putchar(c);c = getchar();}} 直觉告诉我getchar返回值应该是char类型的,这个地方为什么不能用char类型来存储getchar()的返回值呢? 其实文中解释的很清楚,可当时没有看明白: 在键盘或者屏幕上的字符都是用char类型存储的,当然也可以用int类型来存储