计算机编码问题

整理了一些我对进制之间转换的理解,有些地方为了记忆方便可能不太准确,欢迎指正。

我们日常最常用的进制当然是十进制DEC,因为最符合人类的习惯(数手指)。

对于计算机而言,最熟悉的则是二进制BIN(高低电平表示10)。

此外常用的还有八进制OCT,十六进制HEX。

写在前面

以最常见的十进制为例,我们对于数字的记录方式是通过数位+基数(0~9),比如152可以看成是1*10²+5*10¹+2*10º,数位从低到高为个位、十位、百位…

这种方式对应到其他进制只是数位和基数都不相同,其组成数字的法则是一样的。

比如二进制从低位到高位可以看做是个位、二位、四位、八位….

e.g. 152的二进制表示是10011000,就可以看做是$12^7+12^4+1*2^3$

一般而言,不同进制之间转换的时候都会以BIN作为桥梁

不同进制之间转换

不同进制之间如何熟练转换-知乎

因为OCT和HEX都是BIN的倍数,所以一般转换时都是分位转换,即OCT的一位数相当于BIN的三位,HEX的一位数相当于BIN的四位。

常听见的几种编码

ASCII标准码:最高位奇偶校验位,后七位进行存储,可存128个字符。

Unicode:因为计算机的普及,中文、日文以及其它文字使得更多的字符需要被编码,为了统一标准,因此Unicode诞生了,用两个字节来表示一个字符。

UTF-8:因为字母只需要一个字节,而汉字需要两个字节,这样在使用Unicode表示字母的时候就导致内存空间被浪费,因此再Unicode的基础上又诞生了更通用的UTF-8,他的特点是对不同范围的字符使用不同长度的编码。

-------------End-------------
梦想总是要有的,万一有人有钱呢?