精华内容
下载资源
问答
  • C++中longlong与__int64

    千次阅读 2014-02-24 13:53:29
     在C语言的C99标准扩展了新的整数类型long long,long是32位宽,占4字节,long long通常被定义成64位宽,也就可以实现了32及其上可以扩展8字节的数据,GUN C也支持,当然在64平台上就存在这个问题了。...


    long long:

            在C语言的C99标准扩展了新的整数类型long long,long是32位宽,占4字节,long long通常被定义成64位宽,也就可以实现了32位及其上可以扩展8字节的数据,GUN C也支持,当然在64位平台上就存在这个问题了。C99标准并没有硬性规定具体到某种平台上的某种整数类型究竟占用多少字节、能够表示多大范围的数值等,只是给出一条原则和一个参考数值集合,只要同时满足这两方面条件就算是符合C标准。

    {   

          C99标准中说:  long long的级别高于long,long的级别高于int,int的级别高于short,short的级别高于char。(另外有_Bool永远是最低级别)。级别高的整数类型的宽度大于等于级别较低的整数类型。

    }

    用long long写代码,既可以用:

    long long num;

    cin>>num;

    cout<<num;

    也可以用:

    scanf("%IId",&num);

    printf("%IId",num);

    若用unsigned long long 则将%IId改成%IIu即可

    (Dev-C++的g++编译器,它使用的是"%I64d"而非"%IId")


    PS: 编译long long需要支持C99标准的编译器才行,VC并不支持,但也有对应的类型__int64(两个_)


    __int64:

              VC的64位整数分别叫做__int64和unsigned__int64,其范围分别是[-2^63,2^63)与[0,2^64),对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位与32位的混合运算时,32位整数会被隐式转换成64位整数。但是,VC的输入输出与__int64的兼容就不是很好了,如果写下下面这段代码:

        __int64 num;

       cin>>num;

       cout<<num;

    那么将会编译错误,于是,可以使用C的写法:

      scanf("%I64d",&num);

      printf("%I64d",num);

    当用unsigned __int64时,把"%I64d"改为“%I64u”就可以了


    展开全文
  • 变量有多少字节? C/C++语言中,表示整数和浮点数有好多种数据类型。在32平台中,每种类型在...__int128: 16 Byte (前面两个下划线’_’,此类型仅在C++支持,但不影响本题求解) float: 4 Byte double: 8 Byte l...

    变量有多少字节?
    C/C++语言中,表示整数和浮点数有好多种数据类型。在32位平台中,每种类型在内存中占用的字节数各不相同:

    char: 1 Byte

    int: 4 Byte

    long: 4 Byte

    long long: 8 Byte

    __int128: 16 Byte (前面两个下划线’_’,此类型仅在C++支持,但不影响本题求解)

    float: 4 Byte

    double: 8 Byte

    long double: 16 Byte

    一个字节对应8位二进制数,这也决定了他们能表达数值的范围是有差异的。现在给你一些数据类型的查询,请输出其对应的字节数。

    建议大家使用函数进行模块化编程,例如:

    int getByteofType(char t[])
    {
    }

    int main()
    {
    }

    输入格式:
    第一行一个整数N(1<=N<=1000),表示待查询的类型的数量。以下N行,每行给出一种类型。

    输出格式:
    每行一个整数,表示输入中类型对应的字节数。
    输入样例:
    6
    char
    long long
    char
    int
    long
    __int128
    输出样例:
    在这里给出相应的输出。例如:
    1
    8
    1
    4
    4
    16

    # include<stdio.h>
    # include<string.h>
    void getByteofType(char ch[]);
    int main()
    {
    	int m,n,i;
    	char ch[100];
    	scanf("%d",&m);
    	getchar();
    	for(n=0;n<m;n++)
    	{
    		gets(ch);
    		getByteofType(ch);
    		if(n<m-1)
    		{
    			printf("\n");
    		}
    	}
    	return 0;
    }
    void getByteofType(char ch[])
    {
    	if(strcmp(ch,"char")==0)printf("1");
    	if(strcmp(ch,"int")==0)printf("4");
    	if(strcmp(ch,"long")==0)printf("4");
    	if(strcmp(ch,"long long")==0)printf("8");
    	if(strcmp(ch,"__int128")==0)printf("16");
    	if(strcmp(ch,"float")==0)printf("4");
    	if(strcmp(ch,"double")==0)printf("8");
    	if(strcmp(ch,"long double")==0)printf("16");
    	
    }
    

    注意:不能直接用==进行比较,直接用等号的话,会进行地址的比较,从而产生错误。

    展开全文
  •  在C语言的C99标准扩展了新的整数类型 long long,long是32位宽,占4个字节,long long通常被定义成 64 位宽,也就可以实现了在32机器上可以扩展8字节的数据,GUN C也支持,当然在64平台上就存在这个问题...

      C语言中long long的用法

      C语言的C99标准扩展了新的整数类型 long longlong32位宽,占4个字节,long long通常被定义成 64 位宽,也就可以实现了在32位机器上可以扩展8字节的数据,GUN C也支持,当然在64位平台上就存在这个问题了。C99标准并没有硬性规定具体到某种平台上的某种整数类型究竟占用多少字节、能够表示多大范围的数值等,只是给出一条原则和一个参考数值集合,只要同时满足这两方面条件就算是符合 标准。
    之后,我查看了C99标准:
    —The rank of long long int shall be greater than the rank of long int,which
    shall be greater than the rank of int,which shall be greater than the rank of short
    int,which shall be greater than the rank of signed char.

    意思是说:
    long long 的级别高于 long long 的级别高于 int int 的级别高于 short short 的级别高于 char 。(另外有 _Bool 永远是最低级别)。级别高的整数类型的宽度大于等于级别较低的整数类型。

    编译long long需要支持C99标准的编译器才行,VC并不支持,但有对应的类型__int64

                                      C++ __int64用法


      在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。
      那遇到比40亿要大的数怎么办呢?这时就要用到C++64位扩展了。不同的编译器对64位整数的扩展有所不同。基于ACM的需要,下面仅介绍VC6.0g++编译器的扩展。
      VC64位整数分别叫做__int64unsigned __int64,其范围分别是[-2^63, 2^63)[0,2^64),即-9223372036854775808~92233720368547758070~18446744073709551615(1800亿亿)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位与32位的混合运算时,32位整数会被隐式转换成64位整数。但是,VC的输入输出与__int64的兼容就不是很好了,如果你写下这样一段代码:


    那么,在第2行会收到error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '__int64' (or there is no acceptable conversion)的错误;在第3行会收到error C2593: 'operator <<' is ambiguous的错误。那是不是就不能进行输入输出呢?当然不是,你可以使用C的写法:

    scanf("%I64d",&a);
    printf("%I64d",a);

    就可以正确输入输出了。当使用unsigned __int64时,把"I64d"改为"I64u"就可以了。
      OJ通常使用g++编译器。其64位扩展方式与VC有所不同,它们分别叫做long long 与 unsigned long long。处理规模与除输入输出外的使用方法同上。对于输入输出,它的扩展比VC好。既可以使用

    cin>>a;
    3 cout<<a;

    也可以使用

    scanf("%lld",&a);
    printf("%lld",a);

      最后我补充一点:作为一个特例,如果你使用的是Dev-C++g++编译器,它使用的是"%I64d"而非"%lld"

    总结:

    输入输出long long 也可以借助printf,scanf语句,

    但对应的占位符却是和平台相关与编译器相关的:

    Linux中,gcc很统一的用%lld;在windows中,MinGWgccVC6都需要用%I64d

    VS2008却是用%lld

    展开全文
  • 在Java当中存储数据时,不同的数据类型在计算机当中申请的内存空间大小不一样.其中数值型分为整数和小数两种: 整数 byte short int long 小数 ...像我们平时使用的一些字符像A...其中一个字节为8,上图我们可以看到

    在Java当中存储数据时,不同的数据类型在计算机当中申请的内存空间大小不一样.其中数值型分为整数和小数两种:

    整数

    • byte
    • short
    • int
    • long

    小数

    • float
    • double

    像我们平时使用的一些字符像A、B、C、D属于是字符型,字符型使用关键字char来表示

    字符型:

    • char

    其中表示真假的为布尔类型,布尔类型的值只有两个true和false

    布尔型:

    • boolean

    下方为以上数据类型占用的空间大小

    Java语言支持的8种基本数据类型是什么?占用的空间是多少?

    数据类型占用空间大小图

    其中一个字节为8位,上图我们可以看到int类型占4个字节,所以intel类型占用的空间大小为32位.在类当中声明这些类型的变量时,都会有一个对应的默认值.其中需要注意的是char类型的默认值.char类型本质是16位的整数,在Unicode码中从'\u0000'到'\uFFFF'之间" \u表示这是一个Unicode值.'\u0000'代表的应该是NULL,输出控制台是一个空格.

    详细视频讲解:点击查看

    以下为复习指南第一阶段目录,持续更新里面的题目内容:

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

     

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

     

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

     

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

     

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

     

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

     

    Java复习面试指南:17-什么是方法?写方法的时候有哪些注意点?

    展开全文
  • 变量有多少字节?

    2020-04-04 18:09:12
    C/C++语言中,表示整数和浮点数有好多种数据类型。在32平台中,每种类型在内存中占用...__int128: 16 Byte (前面两个下划线’_’,此类型仅在C++支持,但不影响本题求解) float: 4 Byte double: 8 Byte long doubl...
  • __int128: 16 Byte (前面两个下划线'_',此类型仅在C++支持,但不影响本题求解) float: 4 Byte double: 8 Byte long double: 16 Byte 一个字节对应8二进制数,这也决定了他们能表达数值的范围是有差异的。...
  • 面试总结【1】

    2016-07-26 00:34:00
    int 和 long 型在32和64系统中分别占多少字节?  答:32操作系统中,int,long占用4字节,short占用2字节。不同的编译器根据不同的 64 模型有所不同,比如 Visual C++,从第一个支持 64 的版本起,一直...
  • sql server数据类型

    2020-06-15 16:48:20
    数据类型是数据的一种属性,sql server支持多种数据类型,包括数值类型、字符型、日期类型等。数据类型相当于一个容器,容器大小可以决定能装多少东西。为了节省磁盘空间,所以我们需要将数据进行分类。下面我们将对...
  • JDK1.7新特性总结

    2017-10-10 10:48:44
    数字之间可以加_便于区分多少位//主要解决的就是,在数值极大,很多位时,容易出错 //注意只能在数字数字之间 int one_million = 1_000_000;3.支持二进制赋值int x=0B10;x=0b10;//0B,0b都行 推荐大B4.
  • 1. 左移 《多少位,就在右边补多少位的0,例如5《1,就是先计算5的二进制00000101(8bit),左移1位,就是00001010,十进制就是10; 2. 这篇博客主要说右移了,因为比较特殊,一般说,机器支持两种形式,即算术的...
  • PHP存储Int类型最大是多少? 整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 有符号)。64 平台下的最大值通常是大约 9E18,除了 Windows 下 PHP 7 以前的版本,总是 32 的。 PHP 不支持无符号的 ...
  • MySQL的编码 数据库的编码集会默认继承给数据库中的表,表的编码集会默认继承给表中的字段。 create database testdb charset=utf8;...M表示支持多少个长度,D是小数点后面的位数 create table test( aa float
  • 基数排序

    2019-06-12 09:47:00
    基数排序是一种高效的排序算法,多用于处理字符串(不支持负数,实数排序效率不高) 算法流程 · 基数排序就是以每一的数值为关键字来排序,也就是说,是按排序(一般从低位向高位枚举) 先贴代码 inline void ...
  • Java 7 新增功能

    2013-12-11 16:14:00
    在数值中可以使用下划线,不管是整型数值,还是浮点型数值,都可以自由地使用下划线,这样可以直观地分辨数值常量中到底包含多少位。如:3.14_15_92_65_34。 switch语句由一个控制表达式和多个case标签组成,switch...
  • cout << "The size of an int is:\t\t" (int) ; cout << "The size of a short int is:\t" (short) ; cout << "The size of a long int is:\t" (long) ; cout (char) ; cout (float) ; cout (double) ; return 0; } ...
  • 小明对数中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。 注意,平方和是指将每个数分别平方后求和。 请问,在1 到2019 中,所有...
  • 它还将在ASCII(char),ASCII(int)和8(字节)之间进行转换。 这个扩展是相当简单,直接和自我解释(如果没有,请让我知道我能做些什么来加强它)。 它的代码也来源于GitHub(随意做一个PR来添加一些有用的东西...
  • 13. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为哪两种具体类型,各占二进制的多少位? 16.字符串 ”\’a\’” 的长度是( )3 13. float 32位、double 64位 24.表达式2*5/2.5、1.0/2*5、...
  • 求第30位数是多少, 用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i ) return 0; else if(i > 0 &&...
  • 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 31 1.4 新的64机上的64...
  • 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 31 1.4 新的64机上的64...
  • P3 支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部 I/O 部件:(所为学习单片机,实际上就是编程控制以下 I/O 部件,完成指定任务) 1. 四个 8 通用 I/O 端口,对应引脚 P0、P1、P2 和 P3; 2. 两个 16 ...
  • java经典面试题汇总

    2012-08-03 19:59:44
    答:&是运算符,表示按与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个...
  • 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 2  1.4 新的64机上的64...
  • 答:&是运算符,表示按与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 2  1.4 新的64机上的64...
  • 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢?  第7章 内存分配  基本的内存分配问题  7.1 为什么这段代码不行?char*answer;printf("Typesomething:\n");gets(answer);printf(...
  • 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 1.4 新的64机上的64类型...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

int支持多少位