使用二进制来理解数据和二进制的计算

news2024/9/8 23:41:27

1 使用二进制来理解数据

和人类的思维习惯不同的是,计算机将把所有的东西数字化之后才会进行处理。那么计算机能理解的数字是什么样的呢?其实,在计算机内部,不管是什么信息都使用二进制来保存和处理的。

计算机为什么要用二进制来处理信息呢

为什么计算机要用二进制来处理信息呢?高中化学有句名言“结构决定性质”;其实在计算机也适用。计算机的结构来决定了计算机需要使用二进制来处理信息。为什么这么说呢?上一篇中我们知道,计算机的硬件由大量的集成电路组成。 每块集成电路上都带有许多引脚。集成电路的所有引脚都有直流电压 0V 或 +5VC 两种状态。 也就是说,集成电路的每根引脚都只能表示两种状态。正是由于集成电路具有这样的特性, 所以计算机必然要使用二进制来处理信息。
请添加图片描述

比特和字节

计算机处理信息的最小单位是比特,它相当于 1 位二进制数。
请添加图片描述

一般来说,二进制数的位数是以 8 的倍数来增长的,比如 8 位 16 位、32 位……这是因为计算机处理信息的基本单位是 8 位二进制数。 8 位二进制数也称为字节( byte)。字节是信息的基本单位。在内存和硬盘等设备中,数据是以字节为单位存储和读写的,不能以比特为单位来读写。

二进制到底是什么

在我们人类的世界里,我们一般使用的是十进制数。十进制是以 10 为基数来记数的,那么, 二进制就是以 2 为基数来记数的。可能说“基数”不清楚在说什么,看个例子应该就会明白。

举个例子:

十进制的 110,可以拆解为 2 个 100、3 个 10 和 0 个 1;用算式表示为:
请添加图片描述
二进制的 110,可以拆解为 1 和 4、1 个 2 和 0 个 1;用算式表示为:
请添加图片描述

2 二进制的计算——位运算

移位运算是一种对二进制数的各位数字进行平移的运算。 将各位数字向左( 高位) 移位称为左移, 向右( 低位) 移位称为右移。 一次运算可以对数字平移多位。

1、 左移运算

二进制 110100 向左移一位,就是在末尾添加一位 0,因此 110101 就变成了 1101000。请注意,这里讨论的是数字没有溢出的情况。
在这里插入图片描述
所谓数字溢出,就是二进制数的位数超过了系统所指定的位数。目前主流的系统都支持至少 32 位或者 64 位的整型数字,而 1101000 远未超过 32 位,所以不会溢出。如果进行左移操作的二进制已经超出了 32 位,左移后数字就会溢出,需要将溢出的位数去除。

如果将 1101000 换算为十进制,就是 104,你有没有发现,104 正好是 52 的 2 倍。所以,我们可以得出一个结论:二进制左移一位,其实就是将数字翻倍

2、右移运算

二进制 110100 向右移一位,就是去除末尾的那一位,因此 110100 就变成了 11010(最前面的 0 可以省略)。我们将 11010 换算为十进制,就是 26,正好是 52 除以 2 的商。所以二进制右移一位,就是将数字除以 2 求商的操作
在这里插入图片描述

3、 “与”运算

逻辑“与”的意思是,参与操作的位中全是 1,那么最终结果才是 1。

如果我们将二进制 110100 和 100011 的每一位对齐,进行按位的“与”操作,就会得到 110000。
在这里插入图片描述

4、“或”运算

逻辑“或”的意思是,参与操作的位中只要有一个位是 1,那么最终结果就是 1,也就是“真”。如果我们将二进制 110100 和 100011 的每一位对齐,进行按位的“或”操作,就会得到 110111。
在这里插入图片描述

5、“异或”运算

逻辑“异或”运算规则是“相同为 0,相异为 1”。如果要得到 1,参与操作的两个位必须不同,这就是此处“异”的含义。我们将二进制 110100 和 100011 的每一位对齐,进行按位的“异或”操作,可以得到结果是 010111。
在这里插入图片描述
二进制作为现代计算机体系的基石,这些基础的概念和操作,学习计算机的需要非常了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

芋道微服务全栈开发日记(商品sku数据归类为规格属性)

商品的每一条规格和属性在数据库里都是单一的一条数据,从数据库里查出来后,该怎么归类为对应的规格和属性值?如下图: 在商城模块,商品的单规格、多规格、单属性、多属性功能可以说是非常完整,如下图&#x…

搭建规范化的vue2项目

项目包含的库 Vue2VuexRouterEslintPrettier 环境 vue:2.6.14 eslint:7.32.0 prettier:2.4.1 eslint-plugin-prettier:4.0.0 eslint-plugin-vue:8.0.3 vue/cli:5.0.8 步骤 全局安装cli工具 npm in…

Vue3----扩展 element Plug card

扩展 element Plug card 增加全屏&#xff0c;折叠操作项 核心代码 <template><div class"cc-card-component"><el-card v-if"state.isShow" :class"state.class" :bodyStyle"bodyStyle" :shadow"props.shadow…

ic进阶|性能篇02:一文带你了解一种特殊的并行技术-展开!

本期文章让我们聊聊一种数字ic设计技术——展开&#xff0c;展开用于产生一个一次迭代就相当于原有结构的多次迭代的新电路结构。其相当于之前聊过的折叠技术的反向操作&#xff0c;折叠使用一个功能单元通过多次迭代来完成原有电路结构一次迭代的操作&#xff0c;相对于通过时…

访问控制列表(ACL)

文章目录 ACL原理与基本配置ACL分类ACL组成ACL规则的匹配与应用 ACL原理与基本配置 ACL(Access Control List&#xff0c;访问控制列表) 读取二层、三层、四层报文信息根据预先定义好的规则对报文进行过滤和分类实现网络访问控制、防止网络攻击和提高网络带宽利用率等目的提高…

USB3.0的等长要求到底是多少?

USB2.0与USB3.0接口的PCB布局布线要求PCB资源PCB联盟网 - Powered by Discuz! (pcbbar.com) 90欧姆阻抗&#xff0c;走差分线&#xff1a; 重点来了&#xff1a;

cf场+线性dp

Problem - B - Codeforces 思路&#xff1a; 这其实是一道数学题&#xff08;最开始一直在枚举&#xff0c;服啦&#xff09; 我们的目的是求最大利润 当a>b是时直接令k0,利润n*a即可 当a<b时存在两种情况&#xff1a; 1.b-a>n即所有b-i1的情况都>a&#xff0…

【数据结构】哈希表二叉搜索树详解

&#x1f48e; 欢迎大家互三&#xff1a;2的n次方_ &#x1f48e;所属专栏&#xff1a;数据结构与算法学习 &#x1f341;1. 二叉搜索树 二叉搜索树也称为二叉查找树或二叉排序树&#xff0c;是一种特殊的二叉树结构&#xff0c;它的特点是&#xff1a; 1. 若左树不为空&am…

SCI算法!发文首选!参数优化下的BiLSTM-KAN模型回归预测,Python代码

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类算法的家人&#xff0c;可关注我的VX公众号&#xff1a;python算法小当家&#xff0c;不定期会有很多免费代码分享~ KAN是2024年最新的算法&#xff0c;是近期非常热门的一…

leetcode112. 路径总和 leetcode113. 路径总和II,图文并茂,教你完全弄懂DFS,附详细代码

leetcode112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 …

实验2-3-8 计算火车运行时间

//实验2-3-8 计算火车运行时间 /* 输入格式&#xff1a;输入在一行中给出2个4位正整数&#xff0c;其间以空格分隔&#xff0c;分别表示火车的出发时间和到达时间。 每个时间的格式为2位小时数&#xff08;00-23&#xff09;和2位分钟数&#xff08;00-59&#xff09;&#xff…

从0到1,AI我来了- (4)AI图片识别的理论知识-II

上篇文章&#xff0c;我们理解了我们程序的神经网络设计&#xff0c;这篇我们继续&#xff0c;把训练迭代过程分析一下&#xff0c;完成这两篇文章&#xff0c;下面问题&#xff0c;应该能回答了。 一张图片&#xff0c;如何被计算机读懂&#xff1f;pytorch 封装的网络&#…

C语言实现K均值聚类

K均值聚类(K_means)基础理论 K_means聚类是一种简单且广泛使用的聚类算法&#xff0c;它旨在将数据集中的样本划分为k个不同的聚类&#xff0c;其中k是事先指定的聚类数量&#xff0c;该算法的核心思想是迭代地优化聚类中心&#xff0c;以最小化每个样本与其所属聚类中心之间的…

数据仓库中的DIM层-定义、设计与最佳实践

在当今数据驱动的商业环境中,构建高效的数据仓库架构至关重要。本文将深入探讨数据仓库中的维度层(DIM层),帮助您了解其定义、重要性以及设计最佳实践。 目录 什么是DIM层?DIM层的重要性DIM层设计最佳实践1. 选择适当的粒度2. 实施慢速变化维度(SCD)3. 使用代理键4. 规范化v…

x264编解码库 -介绍和使用示例

目录 1&#xff1a;X264简单介绍 1.1&#xff1a;编译x264 1.2&#xff1a;x264简单介绍 1.3&#xff1a;x264的优势 1.4&#xff1a;x264与FFmpeg的关系 1.5&#xff1a;x264 编解码原理 1.6 进一步学习资源 2&#xff1a;demo效果 3&#xff1a;完整代码 4&#xff1a;附件…

Vite + Vue3 + TS项目配置前置路由守卫

在现代前端开发中&#xff0c;使用 Vue 3 和 TypeScript 的组合是一种流行且高效的开发方式。Vite 是一个极速的构建工具&#xff0c;可以显著提升开发体验。本文博主将指导你如何在 Vite Vue 3 TypeScript 项目中配置前置路由守卫&#xff08;Navigation Guards&#xff09;…

学习日记:数组

1. 概念 一组相同类型的数据的集合&#xff0c;也是一种数据类型。 2. 一维数组 2.1 语法 类型说明符 数组名 [常量表达式] &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;1&#xff09;类型说明符&#x…

Leetcode - 周赛407

目录 一&#xff0c;3226. 使两个整数相等的位更改次数 二&#xff0c;3227. 字符串元音游戏 三&#xff0c;3228. 将 1 移动到末尾的最大操作次数 四&#xff0c;3229. 使数组等于目标数组所需的最少操作次数 一&#xff0c;3226. 使两个整数相等的位更改次数 本题可以暴力…

刷题了:144.二叉树的前序遍历心|145.二叉树的后序遍历心|94.二叉树的中序遍历己

递归遍历 文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html#%E6%80%9D%E8%B7%AF 视频讲解:https://www.bilibili.com/video/BV1Wh411S7xt/?spm_id_from333.788&vd_sourcee70917aa6392827d1ccc8d85e1…

ubuntu20.04安装nginx,mysql8,php7.4详细教程,包成功

目录 1.更新索引 2.安装 Nginx 1.安装 Nginx&#xff1a; 2.启动 Nginx 服务并设置为开机自启&#xff1a; 3.开放防火墙的 80 端口&#xff1a; 4.检查 Nginx 是否正常运行&#xff1a; 3.安装 MySQL 8.0 1.首先&#xff0c;安装 MySQL 的仓库&#xff1a; 安装过程中你会看…