zoukankan      html  css  js  c++  java
  • python学习笔记-day02 初始编码

    电脑上存储的都是0101这种二进制;

    Ascii码建立初期,仅仅是供美国是用,大小写加上特殊字符100多个足够,所以最开始的Ascii码只设计7位,但是设计者预留了一位(以便后续扩充,也就是8位),所以最原始的Ascii 最左边的一位是0,(预留位,扩充使用,7位够,为了扩展预留一位)

    8位表示一个字节(比如这8bit可以表示一个a 一个b 或者其他的特殊字符)

    1字节=8bits

    1kb=1024字节(千字节)=1024*8 bits

    1M=1024kb

    1G=1024M

    1T=1024G

    所以最初设计的Ascii只有8位,能够表示256种不同的字符(一个英文字符用一个字节表示(一个字节8位可以表示256种,所以对于英文字符加上特殊字符表示绰绰有余)),而汉字9万多种,8位根本表示不了,所以需要拓展:

    2**16=65536 种,(也就是16位 16bits 也就是2个字节才可以标表示65536种)也表示不了全部汉字;

    为了解决全球字符表示的问题,创建了unicode(万国码)unicode 只有两种 16位和32位,没有八位的!:

    unicode规定,不管是英文还是中文最开始都用2个字节也就是16位表示;

    两个字节(16位 可以表示65536种)可是不够,所以unicode后来使用四个字节(32位 ,太够了,2**32>>9W多种汉字)表示一个汉字;

    但是可以发现使用四个字节表示一个汉字简直太浪费了,针对这种情况,就有了升级版:utf-8:

    也就是一个中文不再使用4个字节表示,现在utf-8使用3个字节(24位)表示一个汉字;

    也就是utf-8其实是unicode的升级版

    其实还可能听过gbk编码方式:

    是中国开发的,只包括汉字,不包括其他国的语言,仅国内使用;

    gbk规定一个中文使用2个字节表示(16位,2**16种,其实还是不够的~)受限‘;

    摘录:

     

    talk is cheap,show me the code
  • 相关阅读:
    主从复制之GTID(全局事务标识符)
    mysql8之MGR
    Headless Services无头服务
    面试题 01.01. 判定字符是否唯一
    344. 反转字符串
    1299. 将每个元素替换为右侧最大元素
    1528. 重新排列字符串
    832. 翻转图像
    1748. 唯一元素的和
    1365. 有多少小于当前数字的数字
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/9457963.html
Copyright © 2011-2022 走看看