永发信息网

c语言 long x; 这里的long是什么类型啊?占用几个字节?

答案:4  悬赏:0  手机版
解决时间 2021-03-20 20:12
c语言 long x; 这里的long是什么类型啊?占用几个字节?
最佳答案
int和long作为基本的整数类型,取值范围和位数直接相关。如果是n位整数的话,最高位表示符号位,剩下的n-1位以补码形式表示绝对值,因此范围是整数区间[-2^(n-1),2^(n-1))。
int和long并没有明确位数,具体和平台相关(有一点可以确定,sizeof(int)<=sizeof(long))。一般而言,32位机的int是32位的,于是范围是[-2^31, 2^31)也就是[-2147483648, -2147483648)。而非int的位数取决于机器字长外还决定于软件平台(操作系统、编译器)上实现的特定的C语言数据模型(专指整数数据模型,不是数据库里讨论的那个),只是一般32位平台上的long都比较统一(基本上都是LP32),为32位,范围和int一致。(如果是64位平台,除了Windows上的LLP64模型中long是32位外,LP64、ILP64、SILP64的long都是64位)。
另外LS错误。首先用的无符号整数写法是错误的,其次printf使用不当(应该用字长无关的%i保证结果正确),再次结果意义不明确。
unsigned int i= -1;
unsigned long l = -1;
printf("%i %i", i, l);
-1转换为无符号数后表示负数的符号位“1”被作为最高非符号位,输出的是无符号整数的最大值。
printf("%i %i", i >> 1, l >> 1);
输出有符号整数最大值,该值加1再乘以-1后即得有符号整数最小值。
转自[原创回答团]。来自:求助得到的回答
全部回答
long指长整型,32位的吧,4字节
long是长整型数据
int是整型数据

在16位机上,int 2byte, long 4byte
32机, int 4,long 4
64 int 4 ,long 8
长整形咯
占几个字节么,试:
printf("%d",sizeof(long));
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
属马三合
想读航空专业,面试需要准备啥
运放正负输入问题
我要去看快死的岳父但今天是(日值月破大事不
vivo手机总是发热换电池的话管用么?
作为NBA史上第一个全票MVP,库里真的没有统治
西游记前七章主要内容(总共200字) 很急!今
这艘战舰有四门双联装主炮,还有一些副炮,是
百度云资源 芭比公主系列 跪求!!……
金夫人国际烫染连锁NO.0036这个地址在什么地
我朋友在蓟县报的名,蓟县都往天津考科目一,
空调制热最高多少度
高筋面粉和普通面粉有什么区别?平时可以互相
酵素水解技术是什么
双方发生口角,持刀致对方死亡,该怎么判
推荐资讯
呼和道布嘎查村地址在什么地方,想过去办事,
数学 求解画横线的那个等比数列求和是怎么化
余姚昨晚白金汉宫打架事件,是怎么回事,有知
泰拉瑞亚草稚剑
碗莲第二年还长浮叶嘛
有谁见过身边的 人中过500万--1000万?是购什
玖月奇迹做客《艺术人生》 畅聊时间都去哪儿
2015年可直接入户广州的紧缺工种有哪些
粤贵银每周四和每月第一个周五是什么?
2012款福特嘉年华车喇叭是多大的
HRB335钢筋 6个的 8个的 10个的 有圆钢么?
我想问怎么把手机当作麦克风
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?