vb中的byte数据类型是什么意思?
我知道是一个数值类型,取值范围也知道,而且不能取负数。但是书里面有几句话搞的我一头雾水。书中说:“如果变量包含二进制数,则将它声明为byte数据类型。在进行ansi和un...
我知道是一个数值类型,取值范围也知道,而且不能取负数。但是书里面有几句话搞的我一头雾水。
书中说:“如果变量包含二进制数,则将它声明为byte数据类型。在进行ansi和unicode格式转换时,若数据是用byte变量存储二进制数据就可保留数据。若数据是用string变量存储,变量中的任何二进制数据都会被破坏”
所以我的问题是:
一、怎样使变量包含二进制数。
二、ANSI和Unicode格式转换时,为什么byte变量可保留数据,而string变量就会被破坏。还有就是string不是属于字符串类型吗,怎么又能存二进制数据了,二进制难道不是数值型吗?
先谢谢各位高手 我希望高手们为我解答的时候尽量用比喻,打比方的手法。那样通俗易懂。
最好在解释部分一个专业术语的词都不要用到。再一次感谢。 展开
书中说:“如果变量包含二进制数,则将它声明为byte数据类型。在进行ansi和unicode格式转换时,若数据是用byte变量存储二进制数据就可保留数据。若数据是用string变量存储,变量中的任何二进制数据都会被破坏”
所以我的问题是:
一、怎样使变量包含二进制数。
二、ANSI和Unicode格式转换时,为什么byte变量可保留数据,而string变量就会被破坏。还有就是string不是属于字符串类型吗,怎么又能存二进制数据了,二进制难道不是数值型吗?
先谢谢各位高手 我希望高手们为我解答的时候尽量用比喻,打比方的手法。那样通俗易懂。
最好在解释部分一个专业术语的词都不要用到。再一次感谢。 展开
展开全部
第一,任何数据类型和文字最终存储到文件里,都是以二进制的形式,也就是0101,单位是字节(Byte)也就是8个二进制数,至于这个字节对应什么文字或者字符,就要看你使用什么编码方式,如Ascii码就是256个字符对应8位二进制数(正好8个二进制数正好256中情况),你定义的任何变量本质都可以转换为二进制数,数据类型直接转换,其他类型转换了也就失去原来的意义(比如字符转换成数字没啥意义)。
第二、ANSI编码不是一个编码是一堆,中文系统就是国标,对应的是汉字编码,输入汉字保存成二进制数,如果拿到其他没有中文系统上就是乱码,本身二进制没变,只是解释变了而已。在其他系统默认非中文系统中,输入的文字同样使用ANSI编码,一样可以正常显示,但是他不能输入中文不支持中文。Unicode编码支持各种文字,它就是为了一统天下的,方便交流,必然与ANSI编码对同一个二进制数有着不同的解释,也就是会变,可能会字节数不同,就会出现截断。
第三、你说string类型其实可以理解为很多个字符,涉及到文字编码后变成二进制数,然后再转换的问题,就像你把双字节类型变成单字节类型必然会变得面目全非啊,就像你把鸡腿剁成肉馅,它看起来就不是一个东西了。
这么说不知道能不能理解。
第二、ANSI编码不是一个编码是一堆,中文系统就是国标,对应的是汉字编码,输入汉字保存成二进制数,如果拿到其他没有中文系统上就是乱码,本身二进制没变,只是解释变了而已。在其他系统默认非中文系统中,输入的文字同样使用ANSI编码,一样可以正常显示,但是他不能输入中文不支持中文。Unicode编码支持各种文字,它就是为了一统天下的,方便交流,必然与ANSI编码对同一个二进制数有着不同的解释,也就是会变,可能会字节数不同,就会出现截断。
第三、你说string类型其实可以理解为很多个字符,涉及到文字编码后变成二进制数,然后再转换的问题,就像你把双字节类型变成单字节类型必然会变得面目全非啊,就像你把鸡腿剁成肉馅,它看起来就不是一个东西了。
这么说不知道能不能理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询