`
hulianwang2014
  • 浏览: 691858 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

VC中double、long、unsigned、int、char类型数据所占字节数

 
阅读更多

和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是无符号的意思。 例如: 16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节

32位编译器

char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节

int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节 64位编译器 char :1个字节 char*(即指针变量): 8个字节 short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 8个字节 long long: 8个字节 unsigned long: 8个字节

VC中的编译器是32位的,下面我们通过程序测试一下:

#include <iostream>
using namespace std;

int main()
{
	char s[2] = "1";

    cout<<"sizeof(int) = "<< sizeof(int)<<endl;
	cout<<"sizeof(char) ="<< sizeof(char)<<endl;
	cout<<"sizeof(unsigned int) = "<< sizeof(unsigned int)<<endl;
	cout<<"sizeof(char*) ="<< sizeof(char*)<<endl;
	cout<<"sizeof(long) = "<< sizeof(long)<<endl;
	cout<<"sizeof(double) ="<< sizeof(double)<<endl; 
	cout<<"sizeof(float) = "<< sizeof(float)<<endl;
	cout<<"sizeof(long long) ="<< sizeof(long long )<<endl;
    cout<<"sizeof(unsigned long) ="<< sizeof(unsigned long )<<endl;
	cin.get();
	return 0;
}

输出如图所示:



分享到:
评论

相关推荐

    float、int、unsigned int数据与其在实际内存中表示的相互转换小程序

    float、int、unsigned int数据与其在实际内存中表示的相互转换小程序

    C++数据类型及取值范围

    数据类型关键字 字节数 数值范围 char 1 -128到126 unsigned char 1 0到255 short 2 -32,768到32,767 unsigned short 2 0到65,535 long 4 -2,147,483,648到2,147,483,648 unsigned long 4 0到4,294,967,295 ...

    QString含汉字时,完美转char*和unsigned char*

    此为QString无损转char*和unsigned char* 。 当QString内容包含汉字时,转换char*等会发生失败。此接口解决了该问题。使用后char*与unsigned char*的qDebug()输出与QString输出结果相同。 注意,该函数返回unsigned ...

    C/C++基本数据类型所占字节数

    关于这个基本的问题,很早以前很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;...

    深入解析unsigned int 和 int

    2.unsigned—–无符号,修饰int 、char3.long——长型,修饰int 、double4.short——短型,修饰int 我们主要来看一下signed和unsigned与int之间的联系与区别。什么叫做有符号,什么叫做无符号这个问题其实很简单,...

    把unsigned int 对调

    把unsigned int 对调

    源码讲解int和unsigned int 的区别,每一位是干什么的

    源码讲解int和unsigned int 的区别,每一位是干什么的

    如何把char str,或unsigned char str转换成CString

    如何把char str,或unsigned char str转换成CString

    指针应用2_damaget7x_Unsigned_Pointerapplication_

    实验6-1数据拷贝程序将一个尺寸为256的unsigned char数组中的数据(其中数据依次为0-255),分别逆序复制到类型为int, double的两个动态缓冲区中,并分别将两个缓冲区的起始地址及其中的数据、缓冲区的最后一个单元...

    Hce300B 动态连接库

    1、int ReadCard(int portnumber,int tracknumber,int timeout,unsigned char* track1,int* track1len,unsigned char* track2,int* track2len,unsigned char* track3,int* track3len) 2、int WriteCard(int port...

    C/C++与Java各数据类型所占字节数的详细比较

    C/C++的数据类型: 一,整型 Turbo C: [signed] int 2Byte//有符号数,-32768~32767 unsigned int 2Byte //无符号数,只能表示整数0~65535  [signed] short [int] 2Byte  unsigned short [int] 2 Byte  long ...

    c++ 面试题 总结

    块式管理:把主存分为一大块、一大块的,当所需的程序片断不在主存时就分配一块主存空间,把程 序片断load入主存,就算所需的程序片度只有几个字节也只能把这一块分配给它。这样会造成很大的浪费,平均浪费了50%的...

    创建位图文件

    long long unsigned int m_imgbytes; long long unsigned int m_BMPbytes; int m_linebyte; int m_width; int m_height; int m_bitcount; LPBITMAPFILEHEADER m_pfileheader; LPBITMAPINFOHEADER m_...

    unsigned char二维数组转bmp图像函数

    自己写的unsigned char二维数组转8位bmp的函数。

    基于C语言char与unsigned char的区别介绍

    在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别。 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,...

    字符串哈希成数字的C实现的代码(含测试)

    typedef unsigned int (*hash_function)(char*, unsigned int len); unsigned int RSHash (char* str, unsigned int len); unsigned int JSHash (char* str, unsigned int len); unsigned int PJWHash (char* str,...

    C语言实现 数据类型占多少字节指针占多少字节

    //使用sizeof验证数据类型在内存中占用的空间大小 // char // int // short // long // unsigned int // float // double // long double printf(在64位机器中:\n); printf( char类型占%d个字节\n,sizeof(char))...

    C数据类型大小

    unsigned int 在内存中占四个字节 范围为0 2^32 1 unsigned long在内存中占四个字节 范围为0 2^32 1"&gt;有符号型: short 在内存中占两个字节 范围为 2^15 (2^15 1 int 在内存中占四个字节 范围为 2^31 (2^31 1)...

    volatile_unsigned_int

    讲述了volatile_unsigned_int地址映射的使用说明。

    不用string.h库函数的,方便易用的字符串处理函数,减少库带来代码量

    long long StrToInt(const char *s,int sign);//字符串转数字 int atoi_32(const char *s);//将字符串str转换为32位整型,其正数的最值为0x7FFFFFFF,负数的最小值为0x80000000,考虑数字会溢出的情况 void ...

Global site tag (gtag.js) - Google Analytics