二进制转换字符编码的演化Python里使用的编码浮点数浮点数的精确度问题
Posted 武倩倩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制转换字符编码的演化Python里使用的编码浮点数浮点数的精确度问题相关的知识,希望对你有一定的参考价值。
二进制转换
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
- 古时候敌人来了,如何通信呢?
②点狼烟信号,那要怎么点呢?
来一个人点一根?来了5000人,点5000根,不用打了,自己给自己烧死了。
那就约定好,来10个人点1根,来100个人点2根,来1000个人点3根,来5000个点4根,来10000个点5根。
可是这样又不太精确了,怎样可以更加精确呢?
①假如有20个狼烟孔,狼烟孔点燃了代表有人,没点燃代表没人。这时候,1个敌人来了,点1根狼烟。
②又来了2个敌人呢?就把第一个狼烟孔灭掉,点燃第二个,这样只点燃第二个孔就代表两个人。
③现在来了3个敌人呢?再把第一个狼烟孔点着了就表示3个人。
④那如果来了4个人敌人,现在有两根狼烟都点着了只能表示3个人,所以只好再点一根,同时还要灭掉前面的两根,因为第三根这一根狼烟就可以表示4个敌人。
。。。。。。。。。。。。。。。
-
1,2,4,8,16,32,64...按照 2 的 n次方,来准确地表示敌人的数量了。
-
二进制与十进制的转换小练习
先把他们代表的值依次写出来,然后再根据10进制的值把数填到相应位置,就好了。
十进制转二进制方法相同,只要对照二进制为1的那一位对应的十进制值相加就可以了。
256 128 64 32 16 8 6 4 2
1 0 1 0 1 0 1 1 0 = 342
-
使用Python内置方法-bin(n)计算
ASCII码与二进制
-
计算机如何把文字转换成二进制?
-
对应关系表——ASCII码表
SCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII
编码,比如大写字母 A
的编码是65
,小写字母 z
的编码是122
。后128个称为扩展ASCII码。
-
文字转换为二进制
一个空格对应的数字是0 翻译成二进制就是0(注意字符\'0\'和整数0是不同的)
一个对勾√对应的数字是251 翻译成二进制就是11111011
-
在ASCII码表里,最多的字符是255位,所以我们使用8位来表示1个字符
①每一位0或者1的空间单位为bit(比特),这是计算机中“最小的表示单位”。
②8bit = 1bytes,是计算机中“最小的存储单位”,1bytes缩写为1B。
字符编码的演化
-
GBK18030与GB2312与GBK1.0
-
全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。
Python里使用的编码
-
Python2.x 默认编码是ASCII
Python2.x 要想修改为UTF-8 要在开头加上 “#! -*- coding: utf-8 -*-”
- Python3.x 默认编码是UTF-8
基本数据类型
-
浮点数
-
科学计数法
浮点数的精确度问题
-
在Python中,浮点数只能精确的存储16位。
以上是关于二进制转换字符编码的演化Python里使用的编码浮点数浮点数的精确度问题的主要内容,如果未能解决你的问题,请参考以下文章