二进制转换字符编码的演化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里使用的编码浮点数浮点数的精确度问题的主要内容,如果未能解决你的问题,请参考以下文章

字符编码的演化

python3字符串编码转换

Python基础之字符编码

Python3中内置类型bytes和str用法及byte和string之间各种编码转换

python字符串格式和编码与解码问题

计算机组成.人机转换大字典.几种字符编码