重学计算机组成原理(十)- \"烫烫烫\"乱码的由来
程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二进制表示的 存储在内存里面的字符串、整数、浮点数也都是用二进制表示的 万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课。 在实际应用中最常遇到的问题,也就是文本字符串是怎么表示成二进制的,特别是我们会遇到的乱码究竟是怎么回事儿 在开发的时候,所说的Unicode和UTF-8之间有什么关系。 理解了这些,相信以后遇到任何乱码问题,你都能手到擒来了。 1 理解二进制的“逢二进一” 二进制和我们平时用的十进制,并没有本质区别,只是平时是“逢十进一”,这里变成了“逢二进一” 每一位,相比于十进制下的0~9这十个数字,我们只能用0和1这两个数字。 任何一个十进制的整数,都能通过二进制表示出来 把一个二进制数,对应到十进制,非常简单,就是把从右到左的第N位,乘上一个2的N次方,然后加起来,就变成了一个十进制数 当然,既然二进制是一个面向程序员的“语言”,这个从右到左的位置,自然是从0开始的。 比如_0011_这个二进制数,对应的十进制表示,就是 \(0×2^3+0×2^2+1×2^1+1×2^0\) \(=3\) 代表十进制的3 对应地,如果我们想要把一个十进制的数