(二) 数据存储_进制转换_编码_字节
文章目录
- 数据如何存储到计算机?
- 寄存器
- 高速缓冲存储器(Cache)
- 内存
- 硬盘
- 进制转换
- [1] 十进制->二进制
- [2] 二进制->十进制
- [3] 十进制->八进制
- [4] 八进制->十进制
- [5] 十进制->十六进制
- [6] 十六进制->十进制
- 计算机编码
- ASCII
- ISO-8859-1
- GB2312
- GBK
- Unicode
- 字节
数据如何存储到计算机?
现实生活中的数据各式各样,计算机需要根据数据的类型申请一块合适的内存空间。
高-------------------------------处理速度--------------------------------->低
寄存器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
(二) 数据存储_进制转换_编码_字节相关推荐
- python的用算法进制转换详解_学习python第五天进制转换
6.进制之间的转换(重要) 二进制:满二进一 范围:0.1符号:0b例如:0b10...[注意]计算机只能识别二进制数据 八进制:满八进一 范围:0~7符号:0o例如:0o66 十进制:满十进一 范围 ...
- python测试脚本 进制转换器_进制转换(用Python实现进制转换器)
进制类型 进制可以分为以下几种类型: 1.1 二进制 字母B表示 1.2 八进制 字母O表示 1.3 十进制 字母D表示 14.4 十六机制 字母H表示 二进制:逢二进一,只有数字0 1 与十进制的换 ...
- java 进制转换工具_进制转换工具(JAVA)
/**进制转换工具,支持2-36任意进制间相互转换 */ public class HexConverter { public static String Quotient = null; publi ...
- 计算机存储和进制转换
计算机的存储单位 计算机只能识别二进制数据,也就是0和1(0和1实际上对应的是高低电平,或者磁极方向等),对应0和1的最小存储单位是bit,bit是数据传输的最小单位.人们又规定特定位数的0和1组 ...
- 进制转换数据结构c语言不用栈,急求!!!用数据结构(C语言)利用栈实现十进制向二(八)进制转换,要有注释,谢谢!...
匿名用户 1级 2013-12-05 回答 #include #include #include typedef unsigned int data_type; //结点数62616964757a68 ...
- 进制转换c++代码_跟小黑学漏洞利用开发之16进制字符转换
Hello Every Boby! 又是一篇缓冲区漏洞利用的文章,本文我们将继续使用vulnserver漏洞练习程序中-HTER指令,它与前一篇Unicode类似.LTER缓冲区转换为Unicode, ...
- 字符编码转换_进制转换(GB2312,GBK,JNI,HexTOStr)
[cpp] view plain copy print? // /* ASCII 英文一个字节 gb2312,gbk 中文两个字节,英文一个字节 在中文系统中ansi一般指gb2312或gbk GB2 ...
- c++二进制转十进制_进制转换:二进制、八进制、十进制、十六进制相互转换
将二进制.八进制.十六进制转换为十进制 二进制.八进制和十六进制向十进制转换都非常容易,就是"按权相加".所谓"权",也即"位权". 假设当 ...
- 数据类型,数据类型转换以及进制转换
一,字面值常量 *字符串常量 用双引号括起来的内容 *整数常量 所有整数 *小数常量 所有小数 *字符常量 用单引号扩起来的内容,里面只能放单个数字,单个字母或单个符号 (''中放的必须是单个字符,1 ...
最新文章
- 走近TCP/IP协议
- flex4实现图片的动态切换
- 翻译:MariaDB RENAME TABLE语句
- Google的成果回报型广告
- 服务器不知别内存_图文版 许迎果第63期 选购和使用内存需要注意的点
- Windows学习总结(23)——在 Windows 10 子系统 ubuntu 上利用 WSL2 安装 docker 的 2 种方式
- Web请求响应编码问题详解
- 一个类似京东商城那种多条件筛选效果
- 未解决:configure: error: XCode tool ‘metal‘ neither found in path nor with xcrunchecking for metal...
- 惊了!原来B站董事长陈睿也是个深度动漫爱好者?
- NCG:肿瘤驱动基因数据库
- 慎用!wordpress的额外css功能会浪费id资源!
- Win7与VirtualBox ubuntu共享文件夹
- Photoshop设计中用羽化消除边缘锯齿
- 项目经理培训后的一点感概
- Unity导表工具Luban插件的数据加载原理与优化
- 《A Survey on Transfer Learning》中文版翻译《迁移学习研究综述》
- 如何将计算机删除的程序还原,如何去恢复电脑上误删的文件?简单恢复
- Java Web 后台中餐饮业报表系统开发实例
- c语言最弱智的游戏,大行其道的“弱智”游戏