0 & 1

简介: 在计算机中所有的信息都是以二进制形式存储的,因为逻辑电路只有通和断两种情况,就是对应着的1和0,那么所有的信息都是如何存储的呢?


进制与进制转换,进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。计算机中使用二进制,我们平常数学中使用十进制,计算机编程更多用到十六进制。

微信图片1.png

在Excel中B列填充序列十进制数0~15,在A列和C列输入公式=DEC2BIN和=DEC2HEX将B列的数据转换成二进制和十六进制。由表可知,表示完整的十六进制需要4位二进制数。

      文字信息的存储,文字信息通过编码来储存,拿ASCII码举例,ASCII码使用指定的7位二进制数组合来表示128种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字;65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。如下表:

微信图片2.jpg

ASCII码用7位来储存,从00~7F,这就是编码,0000 0000~0111 1111足以表示所有的英文字符,其余的GBK码和Unicode码都是同样的原理,只是一个字符所占的字节不一样,这就是为什么在计算机上一个英文字符占一个字节,一个中文字符占用两个字节,其中一个字节为8位。

在MATLAB中用char函数求出数值对应ASCII码:

>> char(97)
      ans =
      a
>> char(98)
      ans =
      b

图片信息的存储,图片信息在计算机中也是以0和1方式存储的,我们可以分两类图形来讲解,第一种是灰度图,第二种是彩色像素图,暂时不说矢量图。以24位真彩色图片为例,在Matlab进行分析:

clear
clc
a = imread('psb.jpg');  %在Matlab当前目录下存在图片psb.jpg,读入图片
figure(1)
imshow(a)               %显示原始图片
%分析灰度图数据
h = rgb2gray(a);
figure(2)
imshow(h)
%分析彩色图
%红色图层
red = a;
red(:,:,2:3) = 0;       %其他色层赋值为0
figure(3)
subplot(131)
imshow(red)
%绿色图层
green = a;
green(:,:,1) = 0;
green(:,:,3) = 0;
subplot(132)
imshow(green)
%蓝色图层
blue = a;
blue(:,:,1:2) = 0;
subplot(133)
imshow(blue)

运行结果:


微信图片_3.jpg

微信图片4.jpg

我们可以看看此时Matlab工作区,原始彩色图数据a为一个313x402x3的无符号整形8位三维数组,这是为什么呢?我们看下原始图片的属性,图片的宽度和高度是402像素和313像素,每个像素点用8位数据来储存,我们先看灰度图数据h,这是一个313x402的二维数组,因为灰度图像素值量化后用一个字节(8位)来表示。如把有黑-灰-白连续变化的灰度值量化为256个灰度级,灰度值的范围为0~255,表示亮度从深到浅,对应图像中的颜色为从黑到白。黑白照片包含了黑白之间的所有的灰度色调,每个像素值都是介于黑色和白色之间的256种灰度中的一种。在彩色图中,每个像素点都有三层,这是因为在计算机中颜色显示原理遵循色光三原色,24位图像就是每一原色位为8位,即R,G,B分别为8位(0~255),在前面,我们用Matlab将三原色层分别提取出来可以看出色彩是如何叠加的。

微信图片5.png


音频信息的存储,用Matlab读入音频文件Annie.mp3,并画出音频波形图:

clear
clc
[y Fs] = audioread('Annie.mp3');
plot(1:size(y),y)
sound(y,Fs)

运行结果:


微信图片6.jpg

其存储原理也是如此,至于视频,就是图像加音频的结合,在真实的存储过程中,会存在很多的压缩算法,并不是全部按照规整的01来存储的。




目录
相关文章
|
Apache 流计算 OceanBase
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
2064 0
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
Unix Linux vr&ar
【详解】静态库和动态库的认识和使用【Linux】
【详解】静态库和动态库的认识和使用【Linux】
320 0
|
7月前
|
缓存 算法 物联网
《深度剖析:鸿蒙分布式软总线实现设备稳定连接的奥秘》
鸿蒙系统的分布式软总线技术是实现智能设备互联互通的核心,通过智能发现、快速连接、异构组网和数据传输优化,构建稳定高效的通信基础。它采用极简协议与多径传输,支持实时业务和高精度需求,为智能家居、教育等场景提供无缝协同体验。未来,面对大规模设备管理和安全性挑战,持续创新将推动鸿蒙生态繁荣发展。
554 9
|
7月前
|
人工智能 API 开发者
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
357 27
|
9月前
|
供应链 搜索推荐 API
深度解析1688 API对电商的影响与实战应用
在全球电子商务迅猛发展的背景下,1688作为知名的B2B电商平台,为中小企业提供商品批发、分销、供应链管理等一站式服务,并通过开放的API接口,为开发者和电商企业提供数据资源和功能支持。本文将深入解析1688 API的功能(如商品搜索、详情、订单管理等)、应用场景(如商品展示、搜索优化、交易管理和用户行为分析)、收益分析(如流量增长、销售提升、库存优化和成本降低)及实际案例,帮助电商从业者提升运营效率和商业收益。
434 20
|
SQL 关系型数据库 MySQL
MySQL 的 WITH QUERY EXPANSION 如何使用举例
【9月更文挑战第2天】MySQL 的 WITH QUERY EXPANSION 如何使用举例
170 0
|
SQL 关系型数据库 MySQL
Seata常见问题之Seata不支持sql seata如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
|
Oracle 关系型数据库 Linux
解决VMmare虚拟机安装过程没有权限问题
解决VMmare虚拟机安装过程没有权限问题
416 0
|
关系型数据库 分布式数据库 数据库
沉浸式学习PostgreSQL|PolarDB 21,相似图像搜索
传统数据库不支持图像类型, 图像相似计算函数, 图像相似计算操作服, 相似排序操作符. 所以遇到类似的需求, 需要自行编写应用来解决. PG|PolarDB 通过imgsmlr插件, 可以将图像转换为向量特征值, 使用相似距离计算函数得到相似值, 使用索引加速相似度排序, 快速获得相似图片, 实现以图搜图. 也可以通过pgvector插件来存储图片向量特征值, 结合大模型服务(抠图、图像向量转换), 可以实现从图像转换、基于图像的相似向量检索全流程能力.
1105 1
|
程序员 编译器 容器
【C++14保姆级教程】变量模板,Labmda泛型
【C++14保姆级教程】变量模板,Labmda泛型
382 0