C#中简单值类型占存储空间的大小

     int i = 1;可以写成int i = new int (1); 就是用new关键字在栈中开辟一块空间用于存储int类型的数值1。那么这块空间到底有多大呢?这取决于int这种类型,int类型是32位的,即一个int类型的数值占32位(4个字节),所以这块空间的大小为4b。让我们来看看其他简单值类型所占的空间大小:
    
                            sbyte    有符号8位整数    1b

                             byte    无符号8位整数    1b

                            short    有符号16位整数   2b

                            ushort   无符号16位整数   2b

                             uint    无符号32位整数   4b

                             long    有符号64位整数   8b

                            unlong   无符号64位整数   8b

                            字符类型 char
 
      C#使用的是Unicode字符集,这种字符集长度是16位,所以在C#中声明一个字符所占空间大小是2b,所以单个汉字也可以作为字符来使用。如:char a = "我";    下面我们来讨论一下字符集与编码的知识:
     
      一、什么是字符集?什么是编码?

    字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。
一组抽象字符的集合就是字符集(Charset)。
字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。
一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。
字符集的子集也是字符集。

    计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。
制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。
每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多是这个含义。
 
    二、有哪些字符集?

    ASCII: 在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位).
   
    ISO 8859-1: 除了使用拉丁字母的语言外,使用西里尔字母的东欧语言、希腊语、泰语、现代阿拉伯语、希伯来语等,都可以使用这个形式来储存及表示。
   
    UCS: 采用4字节编码,UCS包含了已知语言的所有字符。
除了拉丁语、希腊语、斯拉夫语、希伯来语、阿拉伯语、亚美尼亚语、格鲁吉亚语,还包括中文、日文、韩文这样的象形文字,UCS还包括大量的图形、印刷、数学、科学符号。

    Unicode: 一种在计算机上使用的字符编码,每个字符占用2个字节,基本满足各种语言的使用。

    UTF-8: 对于大多数常用字符集(ASCII中0~127字符)它只使用单字节,而对其它常用字符(特别是朝鲜和汉语会意文字),它使用3字节。

    UTF-16:基本上就是unicode编码的实现

    我们在Windows系统中保存文本文件时通常可以选择编码为ANSI、Unicode、Unicode big endian和UTF-8,这里的ANSI和Unicode big endia是什么编码呢?

    ANSI:
  使用2个字节来代表一个字符的各种汉字延伸编码方式,称为ANSI编码。
  在简体中文系统下,ANSI编码代表GB2312编码,在日文操作系统下,ANSI编码代表JIS编码。


  C、C++ 内部字符串都是使用当前系统默认编码, C#、Java内部字符串用Unicode。

            实数类型
               
                       float       32位单精度实数       4b

                       double      64位双精度实数       8b

                       decimal     128位十进制实数      16b

           布尔类型

                     true  false   占4个字节,32位存储空间

 

http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值