关于Byte类型的理解
byte[] bs1 = Encoding.GetEncoding("GB2312").GetBytes("a");
bs1[0] = 97;
// 可以理解转成了Acsll码
byte[] bs2 = Encoding.GetEncoding("GB2312").GetBytes("我");
bs2[0] = 206 ; bs2[1] = 210;
// 这个是怎么转换出来的呢?
备注:很多程序都用到byte类型的操作,比如IO流,为什么byte运用的这么广泛,文件的操作都可以转换成byte二进制进行操作传输之类的,这是什么实现的呢,我对这个byte一点也不熟悉,求高手赐教!!!
------解决方案--------------------"我"的gb2312编码就是206 210,双字节的,至于怎么转换的,你不用追究。
------解决方案--------------------到图书馆借/书店买这本书:http://book.douban.com/subject/4822685/
------解决方案--------------------1byte=8bit
每个bit只能存1或0
cpu 每次最少都是读1byte的
一切的数据都是由若干个0和1组成的
你能把任何东西用若个干0和1表示 并保存起来
当然可以把这个过程逆转
大写字母A 可以用 0100 0001
当然你可以把0100 0001转成整数数字
反正你可以把一大堆0和1按某种编码转来转去
但byte是CPU最小的读取单位 所以都可以把任何数据转成byte
在一些编码中 字母 由1byte就可以表示
在些编码中 中文 要占2个byte的容量
想深入了解 可以看看google 或看楼上推荐的书
------解决方案--------------------byte = 1字节 等同于c++中的 char
char = 2字节 等同于c++中的 wchar_t
string 宽字符 等同于c++中的 wstring
------解决方案--------------------
------解决方案--------------------北鸟教的只是编程,你问的要去学习计算机原理。
编程涉及的知识点很多,设计模式、数据结构等等,数学方面的东西很多
所以有些东西你不用去刨根问底,因为会没完没了的有要学习的东西。反而会弄的自己很累,对编程厌烦。
学习的目的,还是以满足当前的需求为主,尽量使用自己熟悉的技术。闲暇有兴趣的时候,再去学习些深入的知识。
------解决方案--------------------我是非编程专业的
写了半年的asp.net后
开始学 汇编 C++ 操作系统知识
不过只是大概了解一下
------解决方案--------------------byte就是字节,字节啊~~~