⑴ C语言中,合法的长整型数
其实,在现在的计算机中通常使用的都是32位编译器(除非你还使用Turbo C),这时内int和long已经没有什么容区别。(都是占4个字节,表示范围从-2147483648到2147483647)B没写L,默认是int。C和D都是实数。
有时,你也会看到一些老的代码中,在一些整型常后面加一个大写或小写的 L 字母。如:989L 这是什么意思呢?原来,一个常数如果其范围允许,那么计算机默认将其认为是 int 类型的,那么要让计算机把某个数认为是 long int类型,就可以在其后面加 L 或 l。不过,这在以前的16位机器才有意义了。现在,我们的机器都是32位,long int 和 int 完全一样,都是占用4个字节,所以,我们没有必要这样用了。但是long long 类型常量定义时就得写3LL,而unsigned long long 为 3ULL
⑵ C语言中长整形4个字节的数据范围是多少
有些是有差别的,具体要看编译器
char/signed
char/unsigned
char:
1个字节;
char*(即指针变量):
2个字节(16位编专译属器)
4个字节(32位编译器)
8个字节(64位编译器)
short
int:
2个字节
int/unsigned
int:
2个字节(16位编译器)
4个字节(32/64位编译器)
long
int:
4个字节
float:
4个字节
double:
8个字节
long/unsigned
long:
4个字节(16/32位编译器)
8个字节(64位编译器)
long
long:
8个字节
指针4个字节(32位编译器)
⑶ c语言的,长整型
B是字面常量,对于一个整形常量来说,比如 4962710,因为后面没加L,即认为是int型,但其又超出了int的范围,所以溢出,实际表示的是一个负数。长整型常数是在字面常量后面加L来显式说明。
⑷ C语言中如何输出长整型数值
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout << a三种方式。
本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分别是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,没有一种定义和输出方式组合,同时兼容这五种编译器。为彻底弄清不同编译器对64位整型,我写了程序对它们进行了评测,结果如下表。
上表中,正确指编译通过,运行完全正确;错误指编译虽然通过,但运行结果有误;无法编译指编译器根本不能编译完成。观察上表,我们可以发现以下几点:
long long定义方式可以用于gcc/g++,不受平台限制,但不能用于VC6.0。
__int64是Win32平台编译器64位长整型的定义方式,不能用于Linux。
“%lld”用于Linux i386平台编译器,”%I64d”用于Win32平台编译器。
cout只能用于C++编译,在VC6.0中,cout不支持64位长整型。
表中最后一行输出方式中的printint64()是我自己写的一个函数,可以看出,它的兼容性要好于其他所有的输出方式,它是一段这样的代码:
CPP
void printint64(long long a)
{
if (a<=100000000)
printf("%d ",a);
else
{
printf("%d",a/100000000);
printf("d ",a0000000);
}
}
这种写法的本质是把较大的64位整型拆分为两个32位整型,然后依次输出,低位的部分要补0。看似很笨的写法,效果如何?我把它和cout输出方式做了比较,因为它和cout都是C++支持跨平台的。首先printint64()和cout(不清空缓冲区)的运行结果是完全相同的,不会出现错误。我的试验是分别用两者输出1000000个随机数,实际结果是,printint64()在1.5s内跑完了程序,而cout需要2s。cout要稍慢一些,所以在输出大量数据时,要尽量避免使用。
⑸ C语言长整型常数,什么是长整型常数
长整型数是相对于基本整型数而言的,一般它占用的存储空间是基本整型数的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语言里怎样理解长整型 短整型 和无符号型变量和常量
进制一般来说都是10进制,下面以10进制为例。
不同整型可以表示的范围不同版,权可以根据实际需要选择不同的整形。
各种整形的范围请参见下表。
至于原理就涉及到二进制等知识了,初学C语言没必要深究,一般整形只用int类型就足够了。
如下网址可以搜到“C语言数据类型”相关课件。
http://www..com/s?wd=C%E8%AF%AD%E8%A8%80+%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B+filetype%3Appt&tn=site888_1_pg&cl=3&ie=utf-8
⑺ C语言整形数据
一、都有什么用?
short int(int可以省略) 声明相对较短的整形变量(一般用于存储较小数值的整形变量)
long int (int可以省略)声明相对较长的整型变量(一般用于存储较大数值的整形变量)
int 声明一个介于short和long之间的整形变量
unsigned int 声明一个无符号的int类型变量(无符号即0和整数)
unsigned long 声明一个无符号的long类型变量
unsigned short 声明一个无符号的short类型变量
二、为什么要分这么多类型?
1、为了确定变量所占的内存空间。
以一般16位机器为例:
short和int 占2字节,即16bit。 0000 0000 0000 0000
long 占4字节 即32bit。 0000 0000 0000 0000 0000 0000 0000 0000
unsigned占用的空间与它同类型的相同。如:
unsigned long 占4字节。
2、确定所占空间中首位表示数字还是符号
以int 和 unsigned为例
首位为0时:
int:
0000 0000 0000 0001表示10进制数1
unsigned int:
0000 0000 0000 0001也表示1
首位为1时
int:
1111 1111 1111 1111 表示-1,因为首位表示符号,首位1表示负数。(负数=整数除首位外取反+1,即000 0000 0000 0001取反 == 111 1111 1111 1110 ,再+1,得 111 1111 1111 1111);
unsigned 1111 1111 1111 1111 表示65535,因为首位表示数字
希望我说明白了,对你有帮助。
⑻ C语言,大于长整型的数和一些小数怎么定义啊,
C语言中的长整型和整型的最大值和最小值,在标准库头文件limits.h中以宏的形式回定义。用户可以直接答查看或者使用。
INT_MAX:int类型的最大值
INT_MIN:int类型的最小值
UINT_MAX:unsigned int类型的最大值
LONG_MAX:长整型的最大值
LONG_MIN:长整型的最小值
ULONG_MAX:长整型的最小值
示例如下:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("INT_MAX:%d\nUINT_MAX:%u\nLONG_MAX:%d\nULONG_MAX:%u\n", INT_MAX, UINT_MAX, LONG_MAX,ULONG_MAX);
printf("INT_MIN:%d\nLONG_MIN:%d\n",INT_MIN, LONG_MIN);
return 0;
}
⑼ C语言中长短整型如何区分
一般地,凡是有long的(包括long)自身,也属于“长整形”(比如:long int或者long都是长整型)。short的属于短整型。
⑽ C语言中无符号长整型数的输入输出格式是什么
C语言中无符号长整型数的输入输出格式%u。
示例:
intmain()
{
unsignedinta;
intb=-1;
a=b;
printf(“%u”,a);
}
(10)c长整形数据怎么表示扩展阅读
c语言版printf()输出格式权
%p指针
%s字符串
%%"%"
%a(%A)浮点数、十六进制数字和p-(P-)记数法(C99)
%c字符
%d有符号十进制整数
%f浮点数(包括float和doulbe)
%e(%E)浮点数指数输出[e-(E-)记数法]
%g(%G)浮点数不显无意义的零"0"
%i有符号十进制整数(与%d相同)
%o八进制整数e.g.0123
%x(%X)十六进制整数<xml:namespaceprefix=st1/>()e.g.0x1234