3.Java基础概念-计算机中的数据存储

欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

Facts speak louder than words!

在计算机中,数据存储是至关重要的环节。

存储介质

  • 硬盘:包括机械硬盘(HDD)和固态硬盘(SSD)。机械硬盘通过磁盘的旋转和磁头的读写来存储数据,容量较大但速度相对较慢。固态硬盘则使用闪存芯片,读写速度快,性能优越。
  • 内存(RAM):用于临时存储正在运行的程序和数据,速度极快,但断电后数据会丢失。
  • 光盘:如 CD、DVD 和蓝光光盘,通过激光在盘面上蚀刻数据。
  • 闪存盘(U盘):便携、小巧,使用闪存存储数据。

数据存储单位

  • 位(bit):是计算机中最小的存储单位,通常表示一个 0 或 1。
  • 字节(Byte):由8个位组成,是常见的数据存储基本单位。
  • 千字节(KB):1KB = 1024 Byte。
  • 兆字节(MB):1MB = 1024 KB。
  • 吉字节(GB):1GB = 1024 MB。
  • 太字节(TB):1TB = 1024 GB。

数据存储格式

  • 文本格式:如.txt 文件,以字符形式存储数据。
  • 二进制格式:如可执行文件(.exe),以二进制编码存储数据

进位计数值

二进制是计算机中最基本的进位计数值,使用数字 0 和 1 表示,也成为“二进制数(Binary)”。计算机内部的所有存储、传输和处理都是以二进制的形式进行的。

八进制是一种在计算机领域中用的进位计数值,使用数字 0 至 7 表示,每三个二进制位可以表示一个八进制数位。在一些程序设计语言和操作系统中,八进制数值可以用前缀数字0来表示。

十六进制是另一种在计算机领域中用的进位计数值,使用数字 0 至 9 和字母 A 至 F(AF表示1015) 表示,每四个二进制位可以表示一个十六进制数位。在一些程序设计语言和操作系统中,十六进制数值可以用前缀0x或h来表示。


计算机中的数据存储

在计算机中,只有以下三类数据(文本、图片、声音),而视频是很多图片的组合体。

其中文本又包括了数字、字母、汉字。

在电脑中,任何数据都是以二进制的形式来存储的。

 进制之间的转换

进制之间的转换可以分成两种:1、任意进制转十进制;2、十进制转任意进制

1、任意进制转十进制


公式:系数 * 基数的权次幂,然后将每一位相加

系数:就是每一位上的数

基数:当前进制数,例如:将2进制转为十进制,基数就是2

权:从右往左,依次为 0 1 2 3 4 5 …依次递增

1)二进制101转十进制
第一步:将每一位都按照系数 * 基数的权次幂算出来,算完后得到三个结果,最终再相加就行。

右边的第一个因为右边的数字是1,所以它的系数就是2,又因为当前是二进制,所以基数就是2,权是从右开始,0、1、2…依次递增,所以右边的第一位就是0。

同理,再看中间这一位,系数是0,因为当前位置上的数是0,基数是2,因为当前是2进制,权是1,因为它是从右往左是第二位。

左边这位,系数是1,基数是2,权是2。

此时我们就可以将上面三个数据分别计算出来,然后相加,得到最后结果5,所以二进制 101 转成十进制后就是 5。

但其实,二进制转十进制有一种快速的转换方法,这种方法叫做8421快速转换法。

8421快速转换法
每一个二进制值的1都是代表一个固定数值。把每一位的1代表的十进制数加起来得到的结果就是它所代表的十进制数。

例如:给二进制 11111111 制定一张表,在这张表中,它每一位所对应的数字从右往左对应的十进制列出来。如果我现在要将二进制的 1101 转为十进制怎么办?解答:拿着 1101 到这张表里去查,有1直接对应它的十进制数,如果该位是0就不用管,然后将对应的数字拿出来,然后相加。所以此时我们就可以认定二进制 1101 转成十进制后,结果为13

2)八进制101转十进制
同样的也是带入公式即可。系数还是每一位当中的数字,基数就是当前的进制,但是当前是八进制了,所以基数就变成了8。权的规则还是和刚刚一样,从右往左,分别是0、1 、2 、3…

3)十六进制abc转十进制
右边位:因为当前位数字是c,所以系数是12。又因为当前数字是十六进制的,所以基数是16。权从右往左开始,它是0。

中间位:当前的数字是b,b所对应的数字是11,所以这里的系数就是11。当前是十六进制的,所以基数是16。权从右往左开始,当前是1。

左边位:同理,系数是10,因为a所对应的数字是10。基数是16,权是2。

最终将上面计算出的结果相加,十六进制 abc 转十进制得到的结果为 2748。

2、十进制转其他进制


解决方案:除基取余法。不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。

1)十进制转二进制
例如十进制 11 转二进制,直接拿着11不断除以2即可。7转二进制也同理。

在有些资料中在相除的时候不会除到商为0,它偷懒了,商到1就结束了。然后再从商倒着拼接,也是 1011,这种计算方式也是可以的,只不过它是偷懒了,并不是正统的解法。正统应该是一直除,除到0结束,然后所有的余数拼接起来,这个才是最正确的解法。


2)十进制转八进制
跟二进制同理,在除的时候不要除2,除8就行了。

字母在计算机中的存储

字母跟二进制又是个什么关系,怎么就对应起来的呢?说到这里,我们就要说到一张码表,它的全称叫做 American Standard Code for Information Interchange(没过信息交换标准码表),但我们在说的时候不会说它的全称,太长了,我们会把每个单词的首字母拿出来,进行一个缩写,就变成了 ASCII码表,在 ASCII码表 中,每一个字母都跟一个唯一的数字产生对应关系。

所以字母在存储的时候,就是通过查询ASCII码表的方式来进行存储的,找到对应的数字之后,再把它变成二进制存储到计算机中。

汉字在计算机中的存储

 由于ASCII码表是外国人创造的,它在创造ASCII码表的时候并没有考虑到中文。为了解决汉字在计算机中的存储问题,在上个世纪80年代,我们国家自己推出了一张 GB2312。在这张码表当中,它就规定了汉字跟一个唯一的数字会产生一个对应关系,从这个时候开始,汉字才能在计算机中进行存储和运行。

计算机的存储规则
1、GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个汉字。

过了几年,台湾地区也仿照大陆,自己推出了一个BIG5码表,在这个码表当中,它收录的都是一些繁体字,要注意的是,在 GB2312里只有简体中文,是没有繁体的。所以这就出现了一个国家,有两张码表。

2、BIG5编码:台湾地区繁体中文标准字符集,共收录13053个中文字,1984年实施。

但是这可不行,一个国家怎么能有两张码表,都不统一。于是在2000年3月17日推出了一张GBK码表,GBK码表也是目前windows操作系统默认使用的码表。

3、GBK编码:2000年3月17日发布,收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编万码中的所有汉字。

但是还是有点小不足,因为像一些非洲国家,或者是欧洲国家的文字在这张码表里面还是不包含的,因此在后来,有一个国际组织:美国国家标准协会,它提出了一个 Unicode码表,这张码表称之为:万国码,号称一万个国家的码表,这里的万只是一个虚词,它就表示在这个码表当中,包含了世界上大多数国家的文字。

4、Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

简单来说,数字就是转成二进制,字母跟汉字都是查询对应的码表,先找到对应的数字,再转成二进制进行存储。

图片在计算机中的存储

图片数据在计算机中分为三种,从左往右分别是:黑白图、灰度图、彩色图。

要说到图片数据在计算机中的存储,还得来说一说显示器中的三个知识点:分辨率、像素、三原色。

说到像素,就要说到显示器,在平时电脑显示器当中,见到的最多的就是:2K屏、4K屏,但其实这说的是它们的最大分辨率。

2K屏的最大分辨率有:1920 × 1080、1998 × 1080、2048 × 1080、2048 × 858。

而右边的4K屏最大分辨率有:3840 × 2160、3996 × 2160、4096 × 2160、4096 × 1716。

其中最为常见的是2K屏中的 1920 × 1080、3840 × 2160


1)黑白图

说完像素,就可以来解释黑白图了。在这个黑白图中画了一个笑脸,上面两个黑点表示眼睛,下面一个湾勾,就好比嘴巴。其实在黑白图当中,就是给每个像素点去涂抹了颜色,其中白色就是1,黑色就是0。

2)灰度图
直到灰度图之前,首先需要直到灰度表。在这张表当中,0是纯黑,255是纯白,中间就是一些不同层次的灰。

在下面这张图中,画了一个8,在没有8的地方就视为0,在画了8的地方就显示不同程度的灰色。例如第一排的8就是64、142 、146 、182…组合在一起,就是左边的8。

3)彩色图片

彩色图片是我们平时见过最多的,那这个彩色图片又是怎么记录里面的色彩的呢?其实跟刚刚也是类似的,下面就将图片嘴唇的位置进行放大。

 在彩色图中,其实就是我们在给一个像素点里记录不同的颜色就可以了,那这个颜色该怎么记录呢?这时就需要先明白三原色(红黄蓝),通过三原色我们就可以搭配出各种各样五彩缤纷的颜色了。这三种颜色我们也称之为美学三原色。

在计算机当中其实也有三原色的存在,它叫做:红绿蓝,这三种颜色称之为光学三原色。

我们可以去给这三种颜色设置不同的值,值越大表示当前的颜色越浓;值越小,表示当前的颜色越淡。

如果说红色设置为43,绿色设置为123,蓝色设置为194,那我就可以理解:由43份红色的颜料、123份绿色的颜料跟蓝色份194份蓝色的颜料,这么一搅和,就可以搭配出不知道怎么描述,但是还挺好看的蓝色。其他形成的颜色也同理。我们在取值的时候,里面的值是不能乱写的,它是由取值范围的,一定要写在 0 ~ 255之间,包含0也包含255。

 

如果说,我们在指定颜色的时候,写的是这种:(255,0,0),那就表示不用绿色,不用蓝色,只用红色,最终就是纯红色。其他颜色同理。

 

三原色小结

1、在计算机中,颜色是采用光学三原色

2、一个像素点里有红、绿、蓝三种颜色组成,通过这三种颜色的搭配我们就可以组成各种各样的颜色,这个颜色我们取它英文的首字母R(Red)、G(Green)、B(Blue),称这三种颜色叫RGB三原色。

3、可以讲光学三原色写成十进制的表示形式,每一位有范围0 - 255。(255,255,255)

4、当然也可以写成十六进制的表示形式,最小是0,最大是FF。(FFFFFF)

 声音在计算机中的存储

声音的存储会涉及到这种声音的波形图,看右边,这个就是声音的波形图。在波形图中,每一个点都会有每一个数字去跟它对应。

那我们平时在听音乐的时候,如果你氪金了,音质就会非常好,但你的朋友没有氪金,它听的就是全损音乐,那这怎么通过技术来实现呢?其实很简单。

我们在存储声音的时候会对声波进行采样,每个点都会有对应的数字。如果你氪金了,采样的点(比如说下图的黑点)就会比较多,记录的数据也非常的多,在听音乐的时候可以最大程度去还原音乐。

但如果说你的好朋友没有氪金怎么办,此时采样的点就会变的非常的少,那么他在听音乐的时候就是全损音乐,它在还原的时候就不会还原出最原本的声音了。例如在下面这张图中,红色是最原本的声音,但是因为现在没有氪金,采样点比较少,它的还原的时候就不会按照红色的进行还原,而是以你采样的黑点来进行还原。

它在还原的时候就会有这种情况:一直连接黑点,但是在峰值的地方可能无法还原出来,因为在上面是没有对应的采样点的。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥The road is long and the line is coming,让我们一起加油吧!🌙🌙🌙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小劉要努力~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值