(二) 数据存储_进制转换_编码_字节

数据如何存储到计算机?

现实生活中的数据各式各样,计算机需要根据数据的类型申请一块合适的内存空间。

高-------------------------------处理速度--------------------------------->低
寄存器kb—>高速缓存区mb—>内存GB—>硬盘—>其他存储器
低-------------------------------存储空间--------------------------------->高

寄存器

寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。 在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。 在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。

高速缓冲存储器(Cache)

高速缓冲存储器其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。

高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。

高速缓冲存储器最重要的技术指标是它的命中率。

内存

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。

硬盘

硬盘是一种存储设备。
存储设备的任务:
保证各类运算数据得以存续。
硬盘主要的分类:
硬盘主要分为固态硬盘、机械硬盘、混合硬盘。
(注:绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。)

计算机使用二进制来处理数据。文件,数字,图形,影音,或是其他数据都可以用一串比特来表示,每一个比特的值不是一就是零。最常见的存储单位是字节,一字节等于八比特。一份数据可以被任何具有足够容量去容纳该数据大小的计算机所处理。
其中整型在内存中的存储:
原码:直接将整数按照二进制的形式解析成二进制内容存储,写入内存。
反码:符号位不变,其余位按次位取反。
补码:在反码的基础上+1
正数的原码、反码、补码都相同
整型在内存中的存放都是补码。
为什么是补码?
在计算机中,数值一律用补码来表示和存储,因为使用补码可以将符号位和数值同一处理。同时,加法和减法也可以统一处理,补码和原码可以互相转化。
浮点数在内存的存储:
首先,在Java中浮点数家族是包括:float,double,long double。
浮点数与整型的存储大致相同,唯一区别在于分配给浮点数的空间大小会按照一定精度给予小数存储的空间。

内存分配方式有三种:
1.在栈上创建空间。空间小,在Java中需要先声明后赋值再使用。
2.在堆上分配。一般通过new来开辟空间。
3.从静态存储区分配,也叫共享区。一般用static关键字表示该空间。
4.在Java中还有一个空间,叫常量池,一般存储String={}的数据。不能直接调用。

进制转换

[1] 十进制->二进制

十进制->二进制

[2] 二进制->十进制

1010 => 0x20+1x21+0x22+1x23=>10

[3] 十进制->八进制

十进制->八进制

[4] 八进制->十进制

251 => 1x80+5x81+2x82=>1+40+2*64=169

[5] 十进制->十六进制

十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母使用大写)这六个字母来分别表示10,11,12,13,14,15。
十进制->十六进制

[6] 十六进制->十进制

422 => 2x160+2x161+4x162=>1058

计算机编码

字符不能直接转化成二进制,所有需要人为的定义一套编码机制把字符和二进制对应起来。

0110 0001 <=> a

当用户输入的文件保存到计算机时,把字符编码成二进制,这个过程称为编码。
当用户把文件从硬盘打开时,把二进制解码成字符,这个过程称为解码。

常见字符编码集

ASCII

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

ISO-8859-1

ISO 8859-1,正式编号为ISO/IEC 8859-1:1998,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。

GB2312

GB 2312 或GB 2312–80 是中华人民共和国国家标准简体中文字符集,全称《信息交换用汉字编码字符集•基本集》

GBK

汉字内码扩展规范,称GBK,全名为《汉字内码扩展规范(GBK)》1.0版, GBK向下完全兼容GB2312-80编码。支持GB2312-80编码不支持的部分中文姓,中文繁体,日文假名,还包括希腊字母以及俄语字母等字母。不过这种编码不支持韩国字,也是其在实际使用中与unicode编码相比欠缺的部分。

Unicode

Unicode是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得计算机可以用更为简单的方式来呈现和处理文字。

编码表:就是将人类的文字和一个十进制数进行对应起来组成一张表格。
(Java的字符类型采用的是Unicode编码方案)

字节

位(bit):一个数字0或者一个数字1,代表一位。
字节(Byte):每逢8位是一个字节,这是数据存储的最小单位。
字节是我们常见的计算机中的最小存储单元。计算机存储任何的数据,都是以字节的形式存储,右键点击文件的属性,我们可以查看文件的字节大小。
8个bit(二进制位)0000-0000表示为一个字节,写成1 byte或者1 B

1 Byte = 8 bit
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
1 EB = 1024 PB
1 ZB = 1024 EB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值