sizeof(int/long/...)

转载 2013年12月04日 09:55:34
Usually:
整型 int 4字节

长整型 long 4字节

字符型 char 1字节

单精度 float 4字节

双精度 double 8字节

长双精度 long double 8字节



换算关系:

1GB=1024MB

1MB=1024KB

1KB=1024Byte

1Byte=8Bit

一个字节等于八个位

But:

int的字节长度是由CPU和操作系统编译器共同决定的,一般情况下,主要是由操作系统决定,比如,你在64位AMD的机器上安装的是32位操作系统,那么,int默认是32位的;如果是64位操作系统,64位操作系统分为两种,1种是int为32位long为64位,2种int long均为64位。之所以说int同时也与编译器有关,编译器完全可以在32位系统模拟64位整数,例如Unix/Linux下的long long和Windows下的__int64均为64位整数。

---------------------------------------------------------------------

16位机器是2个字节,32位机器下面是4个字节

这个操作系统的位数有关,一个int的大小是操作系统的一个字长,TC是16位系统程序,所以int是16bit业就是两个字节 ,在32位linux和32位Windows下,都是4个字节,也就是目前最常用的VC和gcc结果。

---------------------------------

gcc中的int和long类型长度都为4字节

(1)int类型的长度有什么决定?? 
……准确的字节数依赖于机器和编译器…… 
现阶段32bit(即4字节)PC一般在绝大多数编译器下是32bit,当然也有的编译器是16bit(比如turbo C)。最关键一点,只能小,不能大,这是因为即使编译器把它当作大于32bit了,但因为CPU字长只有32bit,所以也只能处理32bit的数。 
同时需要注意的就是 在c标准中只是对不同的数据类型的数字范围设置了下界,但是没有上界。 

         (2)指针的类型是由什么决定的呢? 
sizeof(Type *)=?? 
================== 
指针的大小是由内存寻址空间决定的,即地址总线决定。 

一般32位机寻址空间4G,所以指针占4字节; 

一般8位的单片机寻址空间是64k,所以指针占2字节

相关文章推荐

sizeof(size_t)的疑惑||size_t sizeof long unsigned int printf max value

今天自己用了一个sizeof(指针),用了printf("%d“,sizeof(指针))。出现了错误:warning: format ‘%d’ expects type ‘int’, but argu...

sizeof(int)

  • 2013-04-22 16:49
  • 14KB
  • 下载

Add_long_int

  • 2011-07-18 20:48
  • 178KB
  • 下载

C/C++中各种类型int、long、double、char表示范围(最大最小值)

//C++编程时候需要注意的几个点 各个数据的类型范围 注意大小 #include #include #include using namespace std; int main() { ...

CString,string,int ,long,double,char*,const char*,date等----留着备用

c++中的一些类型转换 : CString,string,int ,long,double,char*,const char*,date等----留着备用 收藏 1. char* to strings...

CString,string,int ,long,double,char*,const char*,date等----留着备用

c++中的一些类型转换 : CString,string,int ,long,double,char*,const char*,date等----留着备用 收藏 1. char* to stri...
  • gjife
  • gjife
  • 2011-09-03 12:15
  • 888

C# int、long、double、char等各种内置数据类型的字节数、最大值、最小值

介绍C# byte、sbyte、int、uint、long、ulong、double、float、char、bool等各种内置数据类型的字节数、最大值、最小值。

unsigned, unsinged int,unsigned long,std::size_t说明

【转自】http://www.cppblog.com/deane/articles/113724.html 首先四种类型都是无符号类型,是用以...

java Byte和各数据类型(short,int,long,float,double)之间的转换

在Java的网络编程中传输的经常是byte数组,但我们实际中使用的数据类型可能是任一种数据类型,这就需要在它们之间相互转换,转换的核心在于将其他类型的数据的每一位转换成byte类型的数据。下面给出相关...

Java中byte数组与short,int,char,long,float,double之间的转换

某些场景下我们接受和发送的数据都是byte数组,例如在socket传输中,发送、者接收的数据都是 byte数组,或者是自定义传输协议或者文件格式中,为了保证数据安全、节省流量服务端需要对数据进行先加密...
  • FX_SKY
  • FX_SKY
  • 2014-02-28 11:20
  • 2308
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)