zoukankan      html  css  js  c++  java
  • 计算机数据存储单位解析 -- 什么是位、字节、字、KB、MB?

    ==== 情景:数据库为GBK字符集时(oracle在varchar2类型中一个汉字占用两位),数据库为UTF8字符集时(一个汉字占用三位)。

    ==== 那么问题来了,字节位是个什么东西? 怎么来理解呢? 那么我们就来重新学习一下计算机数据单位的知识。

    一、什么是位、字节、字、KB、MB

      位:"位(bit)"是电子计算机中最小的数据单位。每一位的状态只能是0或1。

      字节:8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。

      字:"字"由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。字是计算机进行数据处理和运算的单位。

      KB:在一般的计量单位中,通常K表示1000。例如:1公里= 1000米,经常被写为1km;1公斤=1000克,写为1kg。同样K在二进制中也有类似的含义。只是这时K表示1024,也就是2的10次 方。1KB表示1K个Byte,也就是1024个字节。

      MB:计量单位中的M(兆)是10的6次方,见到M自然想起要在该数值的后边续上六个0,即扩大一百万倍。在二进制中,MB也表示到了百万级的数量级,但1MB不正好等于1000000字节,而是1048576字节,即 1MB = 2E+20 Bytes = 1048576Bytes。

      奔腾微处理器 是Intel公司于1993年3月发布的新一代CPU,根据音译称它为"奔腾处理器"。由于大家已经熟悉了Intel公司的386、486CPU系列产品,所以在Intel正式发布前新闻界都叫它586。但Intel公司出于商标版权的考虑把产品定名为Pentium,其中"Pent"在英文中带有"5"的含义。到现在还有许多人把它叫作"586",Intel在Pentium芯片中采取了许多新技术,使得它对信息的处理能力比486有质的飞跃,叫它"586"其实是恰如其分的。 奔腾是一个超大规模的的微处理器,它内含有310万个晶体管。第一批奔腾芯片的主频是60MHz和66MHz,目前最高的奔腾芯片的主频是233MHz。奔腾芯片内置32位地址总线和64位数据总线,浮点运算单元,存储管理单元,两个8KB高速缓冲存储器(一个用于指令,一个用于数据)。还有一个SMM(System Management Mode)系统管理模式,这是Intel 公司的一个技术术语,这种技术使得微处理器当系统处于空转状态或执行不需要CPU干预的操作时减缓工作速度或暂停某些系统单元的工作,目的是减少功耗。

      MB就是通常说的兆

      KB 1KB=1024B

      MB 1MB=1024KB

      GB 1GB=1024MB

       TB 1TB=1024GB

    二、大B和小B的区别是什么?

    1、在计算机科学中,bit是表示信息的最小单位,叫做二进制位;一般用0和1表示。Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用 于表示计算机中的一个字符。bit与Byte之间可以进行换算,其换算关系为:1Byte=8bit(或简写为:1B=8b);在实际应用中一般用简称, 即1bit简写为1b(注意是小写英文字母b),1Byte简写为1B(注意是大写英文字母B)。

    2、在计算机网络或者是网络运营商中,一般,宽带速率的单位用bps(或b/s)表示;bps表示比特每秒即表示每秒钟传输多少位信息,是bit per second的缩写。在实际所说的1M带宽的意思是1Mbps(是兆比特每秒Mbps不是兆字节每秒MBps)。

    3、建议用户记住以下换算公式:

    1B=8b 1B/s=8b/s(或1Bps=8bps)

    1KB=1024B 1KB/s=1024B/s

    1MB=1024KB 1MB/s=1024KB/s

    规范提示:实际书写规范中B应表示Byte(字节),b应表示bit(比特),但在平时的实际书写中有的把bit和Byte都混写为b ,如把Mb/s和MB/s都混写为Mb/s,导致人们在实际计算中因单位的混淆而出错。切记注意!!!

    三、为什么1个字节(Byte)等8位(Bit)?

    来源:http://blog.csdn.net/bookaswine/article/details/49834155

    有没有想过为什么1个字节等于8个比特位?想过,OK,好孩子,来摸摸头,没想过的同学请自觉面壁哈。啥?这不是理所当然的么,就和吃饭喝水一样自然,还要想吗?另外,知道这个有什么用呢?


    那些看起来自然而然的事情,其实并不是我们想象的那样简单,经常思考和探究这些看似普通的问题,有助于“计算思维”的养成。


    百度知道上的答案如下:“所谓字节,原意就是用来表示一个完整的字符的。最初的计算机性能和存储容量都比较差,所以普遍采用4位BCD编码(这个编码出现比计算机还早,最早是用在打孔卡上的)。BCD编码表示数字还可以,但表示字母或符号就很不好用,需要用多个编码来表示。后来又演变出6位的BCD编码(BCDIC),以及至今仍在广泛使用的7位ASCII编码。不过最终决定字节大小的,是大名鼎鼎的System/360。当时IBM为System/360设计了一套8位EBCDIC编码,涵盖了数字、大小写字母和大部分常用符号,同时又兼容广泛用于打孔卡的6位BCDIC编码。System/360很成功,也奠定了字符存储单位采用8位长度的基础,这就是1字节=8位的由来。”


    各位看官看到这里是否觉得IBM System/360很牛,是否想起了大牛弗雷德里克·布鲁克斯和他的《人月神话》,那么继续往下追寻,


    弗雷德里克·布鲁克斯在哈佛大学取得博士学位以后,进入IBM公司设立在纽约波凯普茜(Poughkeepsie,NewYork)的实验室当工程师。这个实验室从20世纪50年代到80年代一直是IBM公司开发计算机的中心。布鲁克斯在这里参加了Harvest和STRETCH计算机的开发,任体系结构设计师。这两个型号的计算机都引入了一些新技术,在20世纪50年代后期至60年代初期有很大影响,尤其是STRETCH计算机,当前已成标准的8个二进制位的“字节”(byte)就是由布赫霍尔兹(WernerBuchholz)提出,在STRETCH上首次采用的。


    终于找到了出处!

     
     
  • 相关阅读:
    POJ 1125 可不可能遍历所有点情况下的最短路径
    POJ 2253 Floyd算法的巧妙改动
    POJ 2485 多个数据的最小生成树
    最小生成树kruskal算法
    POJ 1789 权值为字符串差值的最小生成树
    POJ 2560 浮点型的带权值
    POJ 1258 城市的道路建设
    java如何进行内存自动释放,垃圾回收的?
    Java内存泄漏
    spinlock(自旋锁)
  • 原文地址:https://www.cnblogs.com/fengaix6/p/8386509.html
Copyright © 2011-2022 走看看