zoukankan      html  css  js  c++  java
  • 【转】bit、byte、位、字节、汉字的关系

    UTF-8和UTF-16的区别?Unicode和UTF是什么关系?Unicode转义字符(u+4个十六进制)。遇到多个引号的时候转义?
    解释:
       unicode是一种编码方式,和ascii是同一个概念,而UTF是一种存储方式(格式)。
    数据存储是以“字节”(Byte)为单位,数据传输是以“位”(bit)为单位,一个位就代表一个0或1(即二进制),每8个位(bit)组成一个字节(Byte)。1KB=1024B,1KB=1024Byte=1024*8bit
    ===========================
    下面这段解释引用自他人的博客:
     bit、byte、位、字节、汉字的关系    
      
            1 bit     = 1  二进制数据  
            1 byte  = 8  bit  
            1 字母 = 1  byte = 8 bit  
            1 汉字 = 2  byte = 16 bit  

    1. bit:位  
        一个二进制数据0或1,是1bit;  
      
    2. byte:字节  
        存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45)  即是指 45个字节;  
        1 byte = 8 bit  
      
    3. 一个英文字符占一个字节;  
        1 字母 = 1 byte = 8 bit  
      
    4. 一个汉字占2个字节;  
        1 汉字 = 2 byte = 16 bit  
      
    5. 标点符号  
        A>.  汉字输入状态下,默认为全角输入方式;  
        B>.  英文输入状态下,默认为半角输入方式;  
      
        C>.  全角输入方式下,标点符号占2字节;  
        D>.  半角输入方式下,标点符号占1字节;  
      
        故:汉字输入状态下的字符,占2个字节 (但不排除,自己更改了默认设置);  
              英文输入状态下的字符,占1个字节 (但不排除,自己更改了默认设置);
    引用结束
    ==================
    以下这段文字引用字百度知道
    英文一个字母是一字节。中国字比较复杂,1字节=8位,8位从0000 0000到1111 1111只能表示256个字符,2个字节是2*8=16位,从0000 0000 0000 0000到1111 1111 1111 1111可以表示65535个字符。 
    6万多个足以表示我们经常用的那些字了。所以我们用2字节表示汉字。
    如果用3个字节有很多不常用的字又占了很多不必要的存储空间,所以我们用2个字节而不是1个或者3个表示汉字的国际码。
    
    
    引用结束
    ==================
    为什么1KB=1024B? 
    一开始我也感觉有点怪,KB和B之间不是应该是1000么?其实计算机就是这么规定的,就像  1 byte  = 8  bit  没有什么理由,规定了你拿来用就好了。
  • 相关阅读:
    zabbix3.0配置服务器流量告警
    centos6.5环境Redis下载及编译安装
    tomcat报错catalina.sh: line 401: /usr/java/jdk1.7.52/bin/java: No such file or directory
    zabbix报警Too many processes on zabbix server
    tomcat报错:java.net.SocketException: Permission denied["http-nio-80"]
    tomcat启动报错:Injection of autowired dependencies failed
    java的split的坑,会忽略空值
    教训:任何的程序脚本,即便你认为再没有问题,也要测试一下再上线。
    如何修改HDFS的备份数
    sqoop遇到的问题
  • 原文地址:https://www.cnblogs.com/snowinmay/p/3224332.html
Copyright © 2011-2022 走看看