精华内容
下载资源
问答
  • 2021-05-18 11:34:25

    长整型数是相对于基本整型数而言的,一般它占用的存储空间是基本整型数的2倍。

    具体大小随不同的编译器而不同。

    如果它的存储空间是k个字节,可存储数的范围是-2^(8k-1)~+2^(8k-1)-1。

    整型变量可分为以下几类:1.基本型类型说明符为int,根据计算机的内部字长和编译器的版本,在内存中可能占2或4个字节通常分别在16位机和32位机上,其取值为基本整常数。

    2.短整型类型说明符为short int或short,在内存中占2个字节,其取值为短整常数。

    3.长整型类型说明符为long int或long,在内存中占4个字节,其取值为长整常数。

    4.64位整型非ANSI标准类型说明符为__int64、long long int或long long,在内存中占8个字节,其取值为64位整常数。

    5.无符号型类型说明符为unsigned。

    它可以单独使用代表unsigned int,也可以作为前缀,都表示无符号整数,即永远为非负的整型变量,大于0的数据范围约扩大为原来的2倍。

    各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。

    但由于省去了符号位,故不能表示负数。

    下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。

    整数的后缀可以用后缀“L”或“l”来表示长整型数。

    例如:十进制长整型数:158L 十进制为158、358000L 十进制为358000;八进制长整型数:012L 十进制为10、077L 十进制为63、0200000L 十进制为65536;十六进制长整型数:0X15L 十进制为21、0XA5L 十进制为165、0X10000L 十进制为65536。

    长整型数158L和基本整型数158 在数值上并无区别。

    但对158L,因为是长整型数,C编译系统将为它分配4个字节存储空间。

    而对158,因为是基本整型,只分配2 个字节的存储空间。

    因此在运算和输出格式上要予以注意,避免出错。

    无符号数也可用后缀表示,整型数的无符号数的后缀为“U”或“u”。

    例如:358u、0x38Au、235Lu均为无符号数。

    前缀,后缀可同时使用以表示各种类型的数。

    如0XA5Lu表示十六进制无符号长整型数A5,其十进制为165。

    更多相关内容
  • C语言中,整型常量和长整型常量,有什么区别?整型常量和长整型常量(包括有符号的和无符号的),为什么占用字节数和一、指代... 二、书写方式不同整型常量:整型常量前面没有c语言中长整型和整型的范围在vc++6.0中,...

    C语言中,整型常量和长整型常量,有什么区别?

    整型常量和长整型常量(包括有符号的和无符号的),为什么占用字节数和一、指代不同

    整型常量:是通常的整数,包括正整数、负整数和0,其数据类型显然是整型。

    20200623073124.jpg

    长整型常量:的数值范围最小是十进制的 -2147483647 ~ +2147483647,在计算机中最少占用4个字节。 二、书写方式不同

    整型常量:整型常量前面没有

    c语言中长整型和整型的范围

    在vc++6.0中,长整形和整型都占用4个字节,但为什么表示的数字范围却不c语言中长整型常量:的数值范围最小是十进制的-2147483647~+2147483647,在计算机中最少占用4个字节。字节长度跟操作系统和编译器有关,longint长度至少32位,而64位类Unix系统为64位。

    c语言中整型常量:是通常的整数。

    长整型和短整型在C语言的应用上有什么不同

    长整型 是 long int, 内存长度用4字节(32 位二进制) 短整型 是 short int, 内存长度用2字节(16 位二进制) int 型 默认 为 long int。(但国内还有人使用的古老的TC编译器int 型 默认 为 short int); 应用上: 能表示的数值范围不同。

    C语言,整形和长整型都占四个字节?

    C语言中短整型和长整型有什么分别?

    ,请说具体点,最好能举个例子。

    就取值范围上的区别 长整型 取值范围在[-2147483648,2147483648] 无符号长整型 也就是没有负号的长整型 取值范围在 [0,4294967259] 短整型 取值范围在[-32768,32768] 无符号短整型 取值范围在[0。

    C语言中,整型常量16和长整型数16L有什么区别?

    现在通常都是32位的系统 所以int和long占用字节是一样的 都是4个字节 在以前旧的16位系统上,int占2个字节 long 占4个字节 同样在新的64位系统上。

    请问c语言中长整型整数怎么理解

    32位程序 64位程序 在VC编译器下 long 跟int 相同 而 long long 是64位整数 一般来说int类型的长度应该跟CPU位数相同 只是为了系统兼容 现在的int是32位的…… 实际上int的取值范围依赖于计算机系统,在16位机器中,int占16位。

    c语言中整数和整型有什么不同

    整型常量就是平时算术上写的没有小数点的整数,由阿拉伯数字1234567890组成,整型常量包括正数负数和0。常量是说从程序开始到结束,数值始终保持不变的量。 整型变量用变量名字表示。整型变量的数值从程序开始到结束可能变化,例如运算和输入。

    求一个C语言程序:运用长整型并且比较长整型与int的#include "stdio.h" void main() { int int_a=1; long long_a=1; printf("Please wait...\n"); while(int_a++) { if(int_a+1

    C语言里怎样理解长整型 短整型 和无符号型变量和常

    变量:是一块内存区域,一块内存包含两个属性,一个是地址,一个是存储的内容,即值。所以在c语言中每个变量都有一个地址,也有自己存储的内容。

    展开全文
  • 长转短直接截取长整的低字节原封不动放到短整上短转长1. 无符号的短整, 转为长整(长整是否有符号,不关心) 短整原封不动地放置到长整的低字节上 2. 有符号的短整, 转为长整...整型之间的算术运算(包括比较),

    长转短

    直接截取长整的低字节原封不动放到短整上

    这里写图片描述

    短转长

    1. 无符号的短整, 转为长整(长整是否有符号,不关心)
    短整原封不动地放置到长整的低字节上
    2. 有符号的短整, 转为长整(长整是否有符号,不关心)
    与前一种无符号的情况相比,多了一步:扩展符号位(短整的最高位),长整的高字节全部置成短整的符号位的值。

    相互运算

    1. 短整(不管是否有符号)一律转成整型(int)
    2. 整型(int)之间的算术运算(包括比较),如果有任一整型是无符号的,通一转化为无符号进行运算
    展开全文
  • 搞透C语言整型数据范围表示

    千次阅读 2021-05-20 12:53:21
    (1)shortC语言中,short是定义一种整型变量家族的一种长度:依据程序编译器的不同short定义的字节数不同。标准定义short短整型变量不得低于16位,即两个字节。编译器头文件夹里面的limits.h定义了short能表示的大小...

    (1)short

    C语言中,short是定义一种整型变量家族的一种

    长度:

    依据程序编译器的不同short定义的字节数不同。

    标准定义short短整型变量不得低于16位,即两个字节。

    编译器头文件夹里面的limits.h定义了short能表示的大小:SHRT_MIN~SHRT_MAX。在32位平台下如windows(32位)中short一般为16位。

    若规定编译器规定short为2字节,则:

    unsigned short i; i可以表示0~65535(0~2^16-1)

    signed(默认)short i; i可以表示-32768~+32767(-2^(16-1)~2^(16-1)-1)

    (2)int

    C语言中,int是定义一种整型变量家族的一种。

    长度:

    目前在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]

    在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]

    unsigned int 表示无符号整数,数据范围为[0~2^32-1]

    除了short、int类型之外,还有long、long long类型可以表示整数。

    以下对范围求取进行说明。

    09e3584a941d284592c0e142f812c38b.png

    图1

    以8位进行说明,16位,32位,64位类似。

    第一位为符号位,0正,1负。假定数据类型的长度为一个字节8位。对有符号整型进行说明。

    (1)有符号

    对于负数的下限,最高位作为符号位位1,用1 1 1 1 1 1 1 1,如图1所示。即为-127,而不是-128,

    难道是1 0 0 0 0 0 0 0?其实就是用1 0 0 0 0 0 0 0表示-128的。以下进行说明。

    注意:1000 0000 B 不等于0 而是 -128(图2)

    +127 +1 = -128

    即 0111 1111 B+1 = 1000 0000 B

    也就是发生了 byte值溢出

    8位二进制反码的表示范围:-127~+127

    为什么 -128 的二进制会是1000 0000;

    1000 0000 (原) = 1111 1111(反)

    那么问题来了: 64+32+16+8+4+2+1 = 127 为什么会有128呢?

    原来 负数 反码是需要补码的,也就是在最后得出的结果上 +1

    注意:计算机中只有 +0 而不存在 -0的说法,因为-0是完全没有意义的存在(见下对正0负0的说明),

    即:只有 0000 0000 = +0

    而没有 1000 0000 = -0

    1000 0000的真实身份是 -128

    7f9df36828ff8b1cf7ed4dc748c87abb.png

    图2

    需要了解计算机对数据的存储表示方法(原码、反码、补码),以及负0与正零的表示。

    (1)所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

    反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

    补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

    原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错了。所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。为了解决原码做减法的问题,出现了反码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原=[0000 0001]反 + [1111 1110]反 =[1111 1111]反 = [1000 0000]原 =-0    发现用反码计算减法,  结果的真值部分是正确的. 。而唯一的问题其实就出现在"0"这个特殊的数值上.虽然人们理解上+0和-0是一样的。但是0带符号是没有任何意义的.而且会有[0000 0000]原和[10000000]原两个编码表示0.于是补码的出现,

    反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。

    在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。

    补码的出现,解决了0的符号以及两个编码的问题:1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 =[0000 0001]补 + [1111 1111]补 =[0000 0000]补=[0000 0000]原  ,这样0用[0000 0000]表示,而以前出现问题的-0则不存在了.而且可以用[10000000]表示-128:(-1) + (-127) = [1000 0001]原 + [1111 1111]原 =[1111 1111]补 + [1000 0001]补 =[1000 0000]补

    -1-127的结果应该是-128,在用补码运算的结果中, [1000 0000]补 就是-128.但是注意因为实际上是使用以前的-0的补码来表示-128,所以-128并没有原码和反码表示.(对-128的补码表示[10000000]补算出来的原码是[0000 0000]原,这是不正确的)使用补码,不仅仅修复了0的符号以及存在两个编码的问题,而且还能够多表示一个最低数.

    这就是为什么8位二进制,使用原码或反码表示的范围为[-127, +127],而使用补码表示的范围为[-128, 127].因为机器使用补码,所以对于编程中常用到的32位int类型,可以表示范围是: [-2^31, 2^31-1]因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.

    (2)根据原码的定义:正零和负零的原码为:

    +0 : 0000 0000 0000 0000 0000 0000 0000 0000 (32 bit)

    -0 : 1000 0000 0000 0000 0000 0000 0000 0000

    而反码为:

    +0 : 0000 0000 0000 0000 0000 0000 0000 0000

    -0 : 1111 1111 1111 1111 1111 1111 1111 1111

    补码为:

    +0 : 0000 0000 0000 0000 0000 0000 0000 0000

    -0 : 1 0000 0000 0000 0000 0000 0000 0000 0000

    可以看出,-0的补码发生溢出,舍弃最高位后,其跟+0在内存的表示一样,都是:

    0000 0000 0000 0000 0000 0000 0000 0000

    再看看下面的图中所示错误。这个错误牵扯到一个叫模的概念。下面是解释。

    1)模的概念:把一个计量单位称之为模或模数。例如,时钟是以12进制进行计数循环的,即以12为模。在时钟上,时针加上(正拨)12的整数位或减去(反拨)12的整数位,时针的位置不变。14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12=2)。因此,在模12的前提下,-10可映射为+2。由此可见,对于一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。10和2对模12而言互为补数。

    同理,计算机的运算部件与寄存器都有一定字长的限制(假设字长为8),因此它的运算也是一种模运算。当计数器计满8位也就是256个数后会产生溢出,又从头开始计数。产生溢出的量就是计数器的模,显然,8位二进制数,它的模数为2^8=256。在计算中,两个互补的数称为“补码”。

    图3中 的错误解释:由于usigned long最大取值范围为2^32-1,而%d是以有符号整数进行输出,故进行了数值转换,即转为signed int,对于signed int 取值范围最大值小于usigned long,发生溢出,根据上述对模概念的说明,应该明白为什么输出是-2了。

    74c4d1d2326caf7bc41e8123993c41b0.png

    图3

    图4、图5为用基于X64处理器的gcc编译器输出各整型数据类型长度的结果

    e1914f0305d369e373e15e4fe9577f09.png

    图4

    f679456e40aae907082c491006e67ab8.png

    图5

    展开全文
  • c语言整型定义

    千次阅读 2021-05-19 18:22:37
    一、 长整型C语言中类型关键字为long。 定义时,var_name为变量名。 INIT_VALUE为初始化值,可以没有。 无初始化值的定义形式为: long var_name; 二、单独写long,表示为有符号长整型C语言整型常数,什么是...
  • 一、整数的概念整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言使用int关键字来定义整数变量(int是 integer 的简写)。在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。signed...
  • C语言整型相乘

    千次阅读 2017-09-24 21:47:12
    思路用数组strA,strB存储数字,将两个大数对应位置(i、j)上的数相乘,乘积直接放在数组strC的第(i+j)位,待所有位置上的数都相乘后,对strC进行进位。#include #include using namespace std;...
  • C语言——整型变量

    万次阅读 2019-06-30 12:49:12
    标题整型变量的分类: (注意:占几个字节跟操作系统和编译器规定有关,可以在编译器上调试查看!) 1)基本型:类型说明符为int,在内存中占4个字节 2)短整型:short int或short,所占字节和取值范围基本相同 3)长...
  • 整型数据一、整型常量的表示方法:“整型常量”即“整常数”。在C语言中,整常数有三种形式表示:十进制整数:如:123、-456、4。八进制整数,以0开头的数是八进制数。如:0123表示八进制数123,即(123)8,用十进制...
  • c语言整型常量和实型常量的写法

    千次阅读 2020-06-12 09:43:38
    十进制:平常的写法,不用加后缀,后缀 ...长整型常量:后面加字母L long num = 10L; 无符号整型常量:末尾加U unsigned num = 10U; 无符号长整型常量:后缀为LU unsigned long num = 10LU; ...
  • C语言的基本的内置类型有 char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数 C语言标准规定了一些库函数 规定函数名 参数类型 ...
  • 常量,变量,输出,输入常量的本质1.什么是常量(常数,不能改变的量)1)常量程序中最基本的元素2)如同其...整形常量2.实型常量3.字符常量4.字符串常量================================整型常量(整数)1.按进制分类...
  • c语言第3讲 常量、变量与标志符 整型、实型、字符型数据第3讲 常量、变量与标志符 整型、实型、字符型数据 2.1~2.5 常量、变量与标识符 例2.1 符号常量的使用 2. 变量 3. 标识符 标识符的分类 2.3 整型数据 2.整型...
  • C语言中长整型的输出格式是否必须是%ld? 我在程序中用%d之后 输出的C值也没有问题 int a=10; long b=21; float c=3.8; printf ("a=%d,b=%d,c=%3.1f\n",a,b,c); 这是怎么回事?
  • C语言整型数据在内存中的存储(详解)

    千次阅读 多人点赞 2021-12-03 23:30:23
    文章目录数据类型布尔类型无符号数据的打印不同数据占用的字节整型在内存中的存储整型家族“原反补”三兄弟二进制要怎么写出来呢?什么是符号位?大小端问题判断当前编译器是大端还是小端为什么整型在内存中存放的是...
  • C语言中各种数据类型长度

    千次阅读 2021-05-23 00:53:19
    C语言中各种数据类型长度C语言的基本数据类型有以下几个:int整型char字符型float单精度浮点型double双精度浮点型另外,在基本数据类型基础上附加一些限定词,得到扩充的数据类型。short,long可以应用到整型,...
  • VB中Integer(整型)和Long(长整型)区别区别如下:1、长度不同。Integer是int的封装类型是 32 位...在32位的机器里面, 有符号基本整形 int 能表示的范围是-32768~32767(-2^15~-2^15-1) 无符号基本整形 unsigned int...
  • C语言中的整型常量

    千次阅读 2010-11-16 16:47:51
    C语言整型常量有3中书写形式: 十进制。如0,123,-123 八进制。如020,相当于10进制的16。我们在常数的开头加上数字0,表示这是八进制表示的常数 十六进制。如0x20,相当于10进制的32(我们总是习惯用10...
  • 初学C语言中的浮点数

    2021-04-26 17:44:50
    文章目录浮点数C语言规定:总结:浮点数的输出常用的库函数应用技巧科学记数法 浮点数 浮点数也称小数或实数, C语言中采用float 和double关键字来定义小数, float 称为单精度浮点型, double称为双精度浮点型,long ...
  • C语言中,常量和变量都是可以用来存储和表示数据的,常量值在程序执行的过程中是不可变的,而变量是可变的 1常量(在运行过程中不能被改变的量) 1.1什么是常量(常量的概念):常量是不可以改变的量,常量可以...
  • C语言常见类型占用字节数

    千次阅读 2018-09-15 23:53:46
    整数是编程中常用的一种数据,C语言通常使用int来定义整数(int 是 integer 的简写),这在《大话C语言变量和数据类型》中已经进行了详细讲解。 在现代操作系统中,int 一般占用 4 个字节(Byte)的内存,共计 32 ...
  • C语言变量初识、简单了解变量如何放入内存中、在屏幕上输出各种类型数据、字符串中长文本的书写 回顾、引入 在我们了解变量前,先回顾一下之前提到的内容。在C语言学习(三)内存初识、数据在内存中的保存形式、程序...
  • #include "stdio.h" void TestFunc(); long fun (long s,long t) { /**********Begin**********/ long sl=10; s /= 10; t = s % 10; while(s > 0) { s = s/100; t = s%10*sl + t;... return
  • 整型 python

    千次阅读 2020-12-02 15:26:16
    在大多数32位机器上,标准整数类型的取值范围:-2147483648 到 2147483647 python标准整数类型等价于c的有符号长整型。 八进制整数以数字“0”开始。 十六进制整数以“0x”或“0x”开始 bint=010101 ...
  • C语言浮点数据
  • Go语言中的整型数据类型
  • 对变量的说明可以包括三个方面:·数据类型·存储类型·作用域在本课中,我们只介绍数据类型说明。其它说明在以后各章中陆续介绍。所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的...
  • C语言中超大整数乘法运算 在计算机中长整型(long int)变量的范围是 -2147483648 至 2147483647因此若用长整型变量做乘法运算乘积最多不能超过 10位数即便用双精度型(double)变量也仅能保证 16 位有效数字的精度在...
  • 【C】 C语言入门——带你从0开始

    千次阅读 多人点赞 2022-04-03 15:40:09
    讲解C语言学习的一些基础知识,了解C语言大概有哪些知识点,但每个知识点不做详细的讲解,这篇博客旨在先让大家可以看懂一些其他人代码,以方便之后的学习,提高学习的效率,之后会对每个知识点做出详细的总结与分析...
  • 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将...题目保证输出在长整型范围内。输入样例:+-P-xf4+-1!#输出样例:-3905我的解法:#inclu...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 128
精华内容 51
关键字:

c语言中长整型的作用