日期:2014-05-18  浏览次数:20784 次

关于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
------解决方案--------------------
探讨
备注:很多程序都用到byte类型的操作,比如IO流,为什么byte运用的这么广泛,文件的操作都可以转换成byte二进制进行操作传输之类的,这是什么实现的呢,我对这个byte一点也不熟悉,求高手赐教!!!

------解决方案--------------------
北鸟教的只是编程,你问的要去学习计算机原理。
编程涉及的知识点很多,设计模式、数据结构等等,数学方面的东西很多

所以有些东西你不用去刨根问底,因为会没完没了的有要学习的东西。反而会弄的自己很累,对编程厌烦。
学习的目的,还是以满足当前的需求为主,尽量使用自己熟悉的技术。闲暇有兴趣的时候,再去学习些深入的知识。
------解决方案--------------------
我是非编程专业的
写了半年的asp.net后
开始学 汇编 C++ 操作系统知识
不过只是大概了解一下
------解决方案--------------------
byte就是字节,字节啊~~~