作者:乐橙垟垟1Lv 10 时间:2016-11-24 19:10:59
【以前硬件不行,8位已经是天了(让intel成名的是4004,4位机)】——计算机的位数,和处理能力没一毛钱关系,一个字节不够不会用两个或更多的字节吗?现在的计算机也只是32位、64位,难道只能处理4个、8个文字吗?文字编码,就是根据需要进行编码,很正常呀,英文字符8位够了,汉字至少要2字节,这有啥问题吗?就因为2比1大,就困难很多吗?2字节、1字节对计算机来说,存储容量不就多一倍吗?有啥问题?
举报| 11楼|点赞|打赏|回复|评论
作者:乐橙垟垟1Lv 10 时间:2016-11-24 19:24:05
能否使用汉语编程不是关键,看看英语相对于汉语在计算机学科上的优势。
不少人在讨论中文计算机,想像如果计算机是中国人发明的,那会是什么样?首先,键盘会是什么样?像算盘像八卦还是像古筝?其实当有一个成型的实例,所有的可能性就都没了。所以,有了现在的计算机,中国人发明计算机会什么样就永远无法知道啦。即使有,也会被说成了借鉴了现有计算机,或者是现在计算机的改进等等。
那么,英语相对于汉语在现代计算机中到底有什么优势?我以为有两个:
1、编码。
英文天然是编码语言,这显然更适合机器实现。尤其是在计算机发展初期,硬件技术还很简陋,较少的编码显然更容易实现。英文字母只有26个,加上常用符号也只需7位二进制便可表示。英文字母笔划简单,只要8x8点阵就可以显示蛮好的字符。虽然随着硬件技术的发展,现在字符少笔划简单已经不再是问题,但历史积累却留下了。现代计算机最小的操作单元是字节,8位二进制。表示英文钓钓有鱼。而其它字符只能以多字节表示。现在的各种编码方案都给英文字母是特殊地位。比如尽管unicode面向所有代码,但英文字母却特别地只用8位。所以,其它语言一旦不了解原有的编码方案,就不能正确解码,都成了乱码。而英文字符却永远没有乱码。
2、积累
第二个优势是没有办法的,也就是历史的积累。现在计算机学科几乎所有重要的文档、软件、论文都是英文的或者都有英文的,并都以英语习惯编写。对于母语是其它语言的就是天然屏障。
那么解决方案呢?第二个积累没有办法,只能靠时间慢慢解决。来说编码。
根据前面分析,产生乱码的原因是多字节造成的。以前硬件不行,8位已经是天了(让intel成名的是4004,4位机)。8位最多只有256个符号,表示汉字显然不行。如果从软硬件统一定义16位为最小操作单位,即一字节为16位。那么,汉字就与ASCII完全同等地位。同时显示字模也以16x16为基本显示模式,由硬件完成。那样,汉字就与英文字母完全同等地位
【比如尽管unicode面向所有代码,但英文字母却特别地只用8位。】——错的。UNICODE编码是所有的文字全部用16
UNICODE编码至少存在两个严重的问题:1.对大量英语国家(特别是美国等发达国家就是用英语、英语也是世界使用最广泛的语言)反而不兼容,原来一字节表示一字母,UNICODE改用2字节(一字节和ASCII一样,另一字节是0);2.编程语言中如C,字符串使用编码为0的作为结束符,而UNICODE字符有0编码(特别是英文字符每个都有0),因此UNICODE不能用在C语言中。为此在UNICODE编码的基础上,重新定义了几个变种的编码,UTF-8/UTF-16等,其中UTF-8是最常用的一种编码,它是一种变长度编码,规定:英文和ASCII码兼容,还是1字节编码,其它国家文字,用2-3字节不等的长度表示(由于英文占用了大量编码空间,其余还用2字节就不够用了,必须有3字节的文字)。网页编码大量采用UTF-8,在同一网页中,可显示不同的文字。