C#类型转换简介,

1.字符转码。。。。。。

Char int String byte 他们的相互转换

文本格式txt。。。。。都是字符型

 

我们在编程的时候,不管是用C#语言或者是用java语言都难免会遇到数据类型间的转换,数据类型的转换经常会涉及到数据在内存里的存放,所以有的时候很让人头痛。通过查阅资料和我个人的理解,在这类把数据类型的转换总结了一下。

由于我是从事C#的,我就以C#byte,int,char,stringbit为例。

bit:位,二进制01表示1位(1bit

byte:字节,1字节有8位 1byte=8bit

intC#中的整数类型,占用4个字节32位(int32

char:c#中的字符类型,占16位字符,也就是2个字节

String:C#中的字符串类型,相当于字符数组(char数组)

可以通过toArrayChar()方法转成char数组

要注意的是:经常有同志说:字母占1个字节,汉字占2个字节,

是的,在计算机上却是这样的,关于为什么,就不说了,是关于编码,有是一段很长得历史。

说到这里菜菜们就迷糊了:那char ch=’a’,ch=’啊’,那到底占用多少了?

其实我们a1字节,汉字占2字节是说在计算机中文本占得空间,跟我们C#中的char没么关系,只要是char类型就占用两个字节。

说了这么多,终于离正题近了

C#byte char int 是属于值类型,

String是引用类型

byte是一个字节,范围是再{(-255)255}之间

bytechar的转换在内存中存得数据本质是一样的,只是对照ASCII

码中另一种表现形式。

例:byte b=97  char ch=(char)b;

 console.WriteLine(ch);

在控制台打印显示的时a,因为97ASCII码中十进制对应的自符就是a

Intchar的相互转换同byte也是对照ASCII码中转换的,只不过,当int的值大于127时,就会事一些特殊字符,或者乱码,

 

Intcharbyte String是值类型与应用类型的转换,就那intString为例。

先要说明下:

值类型值是在内存线程栈中,

应用类型式是再内存托管椎中,而栈中是存得它存放值的地址。

Int 类型能隐式转换成String类型,但是想把String类型转换int类型时不能强转

String str=”123”;

int num=(int)str;

此种写法是错误的。因为String是引用类型,它的值是放在托管堆中而线程栈中存放的时它堆中存放值的地址。

 

原文地址:https://www.cnblogs.com/jaifyhome/p/2544037.html