天天看点

05、二进制、原码、反码、补码和字符编码

目录

​​3.5.1、什么是二进制​​

​​3.5.2、十进制转二进制​​

​​3.5.3、二进制转十进制​​

​​3.5.4、原码​​

​​3.5.5、反码​​

​​3.5.6、补码​​

​​3.5.7、字符编码​​

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。

二进制中第一位是符号位,表示正负,0正数,1负数。例如:1的二进制 ​<code>​00000001​</code>​ ,-1的二进制 ​<code>​100000001​</code>​ 。

十进制转换成为二进制将该数字不断除以2直到商为零,然后将余数由下至上依次写出,即可得到该数字的二进制表示。

125转换成为二进制:

当商为零时,将余数由下至上依次写出,即为125的二进制表示。

-520转换成为二进制:

当商为零时,将余数由下至上依次写出,即为-520的二进制表示。

方法一:小数点前或者整数要从右到左用二进制的每个数去乘以2的相应次方并递增,小数点后则是从左往右乘以二的相应负次方并递减。

05、二进制、原码、反码、补码和字符编码

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反

注意:计算机在底层储数据的时候,使用的是补码

正数的补码就是其本身。

负数的补码是在其原码的基础上, 符号位不变,其余各位取反,最后+1 (即在反码的基础上+1)

什么是字符编码?

字符编码是人为的定义的一套转换表。

在字符编码中规定了一系列的文字对应的二进制。

字符编码其实本质上就是一本字典,该字段中描述了文字与二进制之间的对照关系。

字符编码是人为规定的(是某个计算机协会规定的)

字符编码涉及到编码和解码两个过程中,编码和解码的时候必须采用同一套字符编码方式,不然会出现乱码。

关于字符编码的发展过程,起初的时候计算机是不支持文字的,只支持科学计算。

实际上计算机起初是为了战争而开发的,计算导弹的轨道......

后来随着计算机的发展,计算机开始支持文字,最先支持的文字是英文,英文对应的字符编码方式是: ASCII码。

ASCII码采用1byte进行存储,因为英文字母是26个(键盘上所有的键全部算上也超不过256个,1byte可以表示256中不同情况。所以英文本身在计算机方面就占有优势)

a代表数字是97,进行编码后是01100001,进行解码是a,假如编码和解码不是同一种方式就会出现乱码

随着计算机语言的发展,后来国际标准组织制定了ISO-8859-1编码方式,又称为latin-1编码方式,向上兼容ASCII码,但不支持中文。

后来发展到亚洲,才支持中文、日文、韩文...

中文这块的编码方式:GB2312 &lt; GBK &lt; GB18030(容量关系)

繁体中文:big5(台湾使用的是大五码)

而Java语言为了支持全球所有的文字,采用了一种字符编码方式叫做unicode编码。Unicode编码容纳了全球所有的文字,支持所有的文字。常见包括有:UTF-8 UTF-16 UTF-32...

 ​

继续阅读