日期:2014-05-20  浏览次数:20771 次

我的困惑!求解
byte类型是一个-128~127的整数还是内存里的0和1与类型无关的内存单元?byte是被定义为一个字节的整型的,也就是代表的是一个整数。它应该只能存储整数,文件里经常用到byte类型,文件里存储的数据是各种各样的,byte只能用来存储整数。

列几个关键字,也是我的疑惑重点所在:整数和内存单元文件

            希望大家先想想我的疑惑处再回答,谢谢大家,希望可以看到我想要的答案!

------解决方案--------------------
你的问题我感觉是想弄明白byte只能存储整数,而文件中的是形形色色的字母,数字,符号,还有汉字,视乎byte不能表示文件中这些形形色色的符号,这牵涉到字符编码,文件中的符号最终都是以0和1存储在硬盘中的,根据不同的字符编码他们会将两个或三个byte对应的数值与编码表对照,得到对应的符号(文字,数字,标点符号等)显示出来;具体的编码问题可以查看
------解决方案--------------------
个人理解:
任何东西,只要存到计算机里,最终都是01代码(脉冲信号),我们计算的时候一般会8位8位的计算。byte占8位(从00000000到11111111),方便作为存储任何数据的基本单位。我们经常说的比特流,就是将数据转换为byte后的数据流。如果一个文件原先的格式是由2 byte作为单位形成的,我们解码的时候用3单位byte解码,就会出现乱码了。


------解决方案--------------------
byte只是标明存储数据的长度是8bit(位),“可以”表示-128~127的整数。
你所说的“文件”、“内存单元”之类的概念,对应的都是bit(位)数据,byte值存储的只是数据本身(即8个0/1值),并不具体表示什么意思,具体含义由使用者决定。比如byte值为01100001(97),你可以当做整数97取出来,也可以当做字符‘a’取出来,与数据本身无关。
------解决方案--------------------
byte可以用16进制表示,比如#FF,就是11111111,你看看图片的数据,也是这样的数据,所以不存在只表示数字的问题