数据类型之间的转换的一些总结

最近对这个东西有点迷,因为工作中用到了数据类型之间的 转换,一时半会还是不能熟练应用,所以想着可以总结一个帖子来记录,如果以后用到了再回来查找,可能每个语言之间有些差别,这里如果有误劳烦大家评论指出。

 

(一)数据类型介绍

先讲一下现存的数据类型都有哪些

数据类型描述所占内存大小最小值最大值默认值
字节byte8位无符号整数8bits-127+1280
短整形short16位有符号整数类型16bits-2ⁿ15+2ⁿ15-10
整形int32位有符号整数类型32bits-2ⁿ31+2ⁿ31-10
长整形long64位有符号证书类型64bits-2ⁿ63+2ⁿ63-10L
浮点型float32位单精度浮点型32bitsIEEE754IEEE7540.0F
双精度浮点型double64位双精度浮点型64bitsIEEE754IEEE7540.0D
字符型char16位Unicode字符16bits字符可以是字母,可以是符号,可以是汉字,char类型存储的是Unicode字符。'\0'
布尔型boolean布尔值1bits布尔类型不能参与运算,布尔类型不能与其他类型互转,包括强转。False
字符串类型string一串字符用来存储字符数据,一段文字之类的 

数据类型的类名
这里讲的数据的类名指的是: Sytem.data.DbType对应的类型,我是这样理解的。
类名 System中相对应的类型
bool System.Boolean (布尔型,其值为 true 或者 false)
char System.Char (字符型,占有两个字节,表示 1 个 Unicode 字符)
byte System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)
sbyte System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)
ushort System.UInt16 (无符号短整型,占 2 字节,表示 16 位正整数,范围 0 ~ 65,535)
uint System.UInt32 (无符号整型,占 4 字节,表示 32 位正整数,范围 0 ~ 4,294,967,295)
ulong System.UInt64 (无符号长整型,占 8 字节,表示 64 位正整数,范围 0 ~ 大约 10 的 20 次方)
short System.Int16 (短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767)
int System.Int32 (整型,占 4 字节,表示 32 位整数,范围 -2,147,483,648 到 2,147,483,647)
long System.Int64 (长整型,占 8 字节,表示 64 位整数,范围大约 -(10 的 19) 次方到 10 的 19 次方)
float System.Single (单精度浮点型,占 4 个字节)
double System.Double (双精度浮点型,占 8 个字节)

 

有关IEEE754可以参考,IEEE 754 标准 是IEEE二进位浮点数算术标准(IEEE Standard for Floating-Point Arithmetic)的标准编号,它规定了浮点数在计算机当中的存储方式以及算术标准等。具体可以搜索相关博客。

 

(二)数据类型之间的转换

数据类型之间的转换分为 两类:隐式类型转换和显式类型转换

隐式类型转换:无需程序员动手操作,自动转换

隐式转换原则:从低字节转换为高字节(容量小的数据类型转换为容量大的数据类型)

byte→short→int→long→float→double

char→int(char只能和int进行转换) 

显式类型转换(强制转换):需程序员手动进行操作,但是强制转换会导致数据丢失。

比如: double k=1.999;

 int num=(int)k;

这里转换后的num的值是1,而不是四舍五入得到的值

(1)万能转换方法Convert

C#里面 Convert 几乎是 万能转换了,只要不出现异常,可以随意转换....太方便了。

Convert后面 可以点出很多东西。
.ToInt32(); //转换成32位的整数
.ToInt16(); //转换成16位的整数
.ToBoolean(); //转换成 bool 值
.ToString(); //转换成 字符串
.ToDouble(); //转换成小数
后面都有提示的,

强制转换
((类名A)对象名X) //强行将 对象X 转换成 A类 的对象

(2)byte字节型数据

Test_bool = BitConverter.ToBoolean(Test_byte, 1);

//返回由字节数组中指定位置的一个字节转换来的布尔值。

Test_int = BitConverter.ToInt32(Test_byte, 0);

//返回由字节数组中指定位置的四个字节转换来的 32 位有符号整数。

Test_float = BitConverter.ToSingle(Test_byte, 0);

//返回由字节数组中指定位置的四个字节转换来的单精度浮点数。

Test_char = BitConverter.ToChar(Test_byte, 0);

//返回由字节数组中指定位置的两个字节转换来的 Unicode 字符。

Test_string = BitConverter.ToString(Test_byte, 0);

//将指定的字节子数组的每个元素的数值转换为它的等效十六进制字符串表示形式。

(3)short 短整形数据

short i=10;
byte [] a= BitConverter.GetBytes(i);
byte m=a[0]; //低字节
byte n=a[1]; //高字节

//将一个short型数据转换成两个byte型数据 

 

(4)int整形数据

Temp_byte = BitConverter.GetBytes(Test_int);

//以字节数组的形式返回指定的 32 位有符号整数值。

(4)long长整型数据

(5)float浮点型数据

Temp_byte = BitConverter.GetBytes(Test_float);

//以字节数组的形式返回指定的单精度浮点值。

(6)double双精度浮点型数据

Temp_byte = BitConverter.GetBytes(Test_double);

//以字节数组的形式返回指定的双精度浮点值。

(7)char字符型数据

Temp_byte = BitConverter.GetBytes(Test_char);

//以字节数组的形式返回指定的 Unicode 字符值。

(8)string字符串型数据

变量.ToString(); //最常见的转换成 字符串。

""+2514 //字符串+数字 最后会全部转换成 字符串。

Temp_byte = Encoding.Default.GetBytes(Test_string);

//在派生类中重写时,将指定的 System.String 中的所有字符编码为一个字节序列。

(9)boolean布尔型数据

Temp_byte = BitConverter.GetBytes(Test_bool);

//以字节数组的形式返回指定的布尔值。

除了布尔型数据,其他几种类型的数据在计算机内存储中的都是数值都可以相互转换。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demo.demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值