博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c中int和long类型
阅读量:2383 次
发布时间:2019-05-10

本文共 925 字,大约阅读时间需要 3 分钟。

16位系统:long是4字节,int是2字节

32位系统:long是4字节,int是4字节

64位系统:long是4字节,int是4字节

 

    指针长度默认是unsigned long。

 

    int的长度,是由硬件和系统共同决定的。比如当年的dos是运行在16位CPU下的,他的int就是两个字节,win95是运行在32位CPU下的,但是win95还是16位的系统设计,所以他的int还是2个字节,到2000,NT,XP,cpu是32位的,windows也支持32位,所以他的int就是32位的了。语言并没有规定类型的长度,但是有一些规则,比如:char不论在什么时候都是一个字节(即8个bit),int永远比char长,long不会小于int的长度。所以说,long和int其实是有差别的。

关于long foo和extern short foo,赋值之后出现的情况:

假定一个程序在一个源文件中包含了声明: long fop;而在另一个源文件中包含了 extern short foo;

如果给long类型的foo赋了一个较小的值37,short类型的foo同时获得一个值37.那么我们知道运行改程序的硬件是一个低位优先的机器。
如果给long类型的foo赋了一个较小的值37,short类型的foo同时获得一个值0.那么我们知道运行改程序的硬件是一个高位优先的机器。

float类型和double类型:

float的指数位有8位,而double的指数位有11位,分布如下: 

float: 

1bit(符号位) 

8bits(指数位) 整数位最大可以表示255

23bits(尾数位) 

double: 

1bit(符号位)

11bits(指数位) 

52 bits (尾数位)

分别写出bool,int,float,指针类型的变量a与“零”的比较语句

 
  • BOOL  : if ( !a ) or if(a)

  •  
  • int   : if ( a == 0)

  •  
  • float : const EXPRESSION EXP = 0.000001

  •          if ( a < EXP&& a >-EXP)

  •  
  • pointer : if ( a != NULL) or if(a == NULL)

 

转载地址:http://czbab.baihongyu.com/

你可能感兴趣的文章
罗马数字与阿拉伯数字的相互转化
查看>>
3Sum
查看>>
Next Permutation
查看>>
sys文件系统
查看>>
Mysql常用命令大全
查看>>
辞职后五险一金怎么处理?
查看>>
几种开源的TCP/IP协议栈对比
查看>>
C语言之断言
查看>>
程序员技术练级攻略
查看>>
#define
查看>>
C语言之if...else PK switch...case
查看>>
关于SVN方面的问题
查看>>
深入理解C语言
查看>>
编程成就:开发人员如何升级
查看>>
如何防止代码腐烂
查看>>
va_start va_end 的使用和原理
查看>>
Linux 中的零拷贝技术,第 2 部分
查看>>
零拷贝技术的研究与实现
查看>>
零拷贝与 sendfile
查看>>
directfb显示中文
查看>>