分享

C#常用数据类型间的转换

 昵称10504424 2014-02-24

数据类型有很多种,数据类型间的转换也是有很多的方法,如果不细心整理的话等到用的时候再查就会显得很浪费时间,所以决心整理出这篇博文。主要是讲解常用数据类型之间的转换方法以及常见数据类型所占字节数。

字节数据类型与其它数据类型间的转换方法主要放在BitConverter类中:

http://msdn.microsoft.com/zh-cn/library/system.bitconverter%28v=vs.100%29.aspx

其它数据类型转换为字节类型主要通过重载GetBytes()方法返回字节类型数组。

但是字符串类型根据编码方式的不同返回的字节类型不同,所以字符串类型的转换通过Encoding类中的GetBytes()方法返回字节数组。

关于占用字节情况的注意:

布尔类型占用一个字节,虽然布尔类型只用一比特就能表示但是还是需要占用一个字节,度娘说最小的存储单元是一字节。

字符类型在C#中占用二字节,代表一个Unicode字符,Marshal.SizeOf((typeof(char)); 得到的是非托管类型的大小(占用一字节)。在测试中会发现存入数字就是一个字节,存入数组就是两个字节。

还有不要误会啊,字符串类型是没有固定长度的,是在实际使用中根据实际情况确定长度的。

下面测试代码:

将一个基本数据类型转换为另一个基本数据类型Convert类:

http://msdn.microsoft.com/zh-cn/library/system.convert_methods%28v=vs.100%29.aspx

区别,以数值8为例:

BitConverter.GetBytes();//以字节数组的形式返回指定的 32 位有符号整数值。

返回的是字节数组,也就是数值33的存储形式:00000000 00000000 00000000 00001000 ,在调试中十进制显示:0 0 0 8

Convert.ToByte();//将指定的 32 位有符号整数的值转换为等效的 8 位无符号整数。

返回的是字节,也就是把数值8转换为字节类型的8了:00001000 ,在调试中十进制显示为:8

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多