计算机组成原理之数据的表示和运算(一)

目录

  • 一、引言
  • 二、进位计数制
    • 2.1 十进制计数法
    • 2.2 二进制
    • 2.3 八进制
    • 2.4 十六进制
    • 2.5 进制转换:二进制、八进制、十六进制、十进制之间的转换
      • 2.5.1 任意进制到十进制转换
      • 2.5.2 二进制与八进制和十六进制如何进行互相转换?
      • 2.5.3 十进制到任意进制的转换
    • 2.6 真值和机器数
    • 2.7 小结
  • 三、BCD 码
  • 四、无符号整数的表示和运算
    • 4.1 无符号整数在计算机中的应用
    • 4.2 无符号整数的表示
    • 4.3 无符号整数的加法运算
    • 4.4 无符号整数的减法运算
    • 4.5 小结
  • 五、带符号整数的表示和运算_原码、反码、补码
    • 5.1 带符号整数在计算机中的应用
    • 5.2 带符号整数的表示
    • 5.3 小结
    • 5.4 补充:原码、反码、补码的特性对比
    • 5.5 移码

在正式的学习 C 语言之前,我们需要先了解计算机组成原理相关的知识。

一、引言

现代计算机的结构如下图所示:

数据如何在计算机中表示?运算器如何实现数据的算术、逻辑运算?

二、进位计数制

本小节内容大致如下:

最古老的计数方法:

2.1 十进制计数法

在这里插入图片描述
补充说明:

我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、6、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。例如表示 5+8 的结果,一个数字不够,只能 进位,用 13 来表示;这时 进一位 相当于十,进两位 相当于二十。因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做 十进制(Decimalism)。 十进制是在人类社会发展过程中自然形成的,它符合人们的思维习惯,例如人类有十根手指,也有十根脚趾。进制也就是进位制。进行加法运算时 逢X进一(满X进一),进行减法运算时 借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。

推广:r进制计数法,如下图所示:
在这里插入图片描述

2.2 二进制

我们不妨将思维拓展一下,既然可以用 0~9 共十个数字来表示数值,那么也可以用 0,1 两个数字来表示数值,这就是 二进制(Binary)。 例如,数字 0,1,10,111,100,1000001 都是有效的二进制。在计算机系统内部,所有的信息都是用二进制进行编码的,这样做的原因有以下几点:

① 二进制只有两种状态,使用有两个稳定状态的物理器件就可以表示二进制的每一位,制造成本比较低,例如用高低电平或电荷的正负极性都可以很方便地表示 0和1
② 二进制位 1和0 正好与逻辑值 真和假 对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件。
③ 二进制的编码和运算规则都很简单,通过逻辑门电路能方便地实现算术运算。二进制是学习编程必须掌握的基础

二进制加减法和十进制加减法的思想是类似的:

对于十进制,进行加法运算时逢十进一,进行减法运算时借一当十
对于二进制,进行加法运算时逢二进一,进行减法运算时借一当二

下面两张示意图详细演示了二进制加减法的运算过程。二进制加法:

1+0=1、1+1=10、11+10=101、111+111=1110

演示如下图所示:
在这里插入图片描述
二进制减法:

1-0=1、10-1=1、101-11=10、1100-111=101

演示如下图所示:
在这里插入图片描述

2.3 八进制

八进制有 0~78个 数字,基数为8,加法运算时 逢八进一,减法运算时 借一当八。例如,数字 0,1,5,7,14,733,67001,25430 都是有效的八进制。八进制加法:

3+4=7、5+6=13、75+42=137、2427+567=3216

演示如下图所示:
在这里插入图片描述
八进制减法:

6-4=2、52-27=23、307-141=146、7430-1451=5757

演示如下图所示:
在这里插入图片描述

2.4 十六进制

除了二进制和八进制,十六进制也经常使用,甚至比八进制还要频繁。十六进制中,用 A 来表示 10B 表示 11C 表示 12D 表示 13E 表示 14F 表示 15,因此有 0~F16 个数字,基数为 16,加法运算时 逢16进1,减法运算时 借1当16。例如,数字 0,1,6,9,A,D,F,419,EA32,80A3,BC00 都是有效的十六进制。

注意,十六进制中的字母不区分大小写,ABCDEF 也可以写作 abcdef

十六进制加法:

6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11

演示如下图所示:
在这里插入图片描述
十六进制减法:

D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF

演示如下图所示:
在这里插入图片描述

2.5 进制转换:二进制、八进制、十六进制、十进制之间的转换

2.5.1 任意进制到十进制转换

在这里插入图片描述
更多转换成十进制的例子:

二进制:1001 = 1×23 + 0×22 + 0×21+ 1×20 = 8 + 0 + 0 + 1 = 9(十进制)
二进制:101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)
八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)
八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)
十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

2.5.2 二进制与八进制和十六进制如何进行互相转换?

**各种进制常见的书写方式:**

2.5.3 十进制到任意进制的转换

整数部分:

小数部分:

十进制到二进制拼凑法:
在这里插入图片描述

2.6 真值和机器数

在这里插入图片描述

2.7 小结

在这里插入图片描述
中国古代的二进制系统:
在这里插入图片描述

三、BCD 码

8421 码操作如下:

注: 若相加结果在合法范围内,则无需修正。 其余码:

小结:

四、无符号整数的表示和运算

4.1 无符号整数在计算机中的应用

4.2 无符号整数的表示

实例:

4.3 无符号整数的加法运算

4.4 无符号整数的减法运算

具体实现过程:① 全部位按位取反,末位+1

② 减法变加法:

4.5 小结

五、带符号整数的表示和运算_原码、反码、补码

本小节总览:

5.1 带符号整数在计算机中的应用

5.2 带符号整数的表示

原码表示法:

原码的缺点:

原码–>反码–>补码的转换(机算)

原码、补码快速转换技巧(手算)

补码的加法运算(例1):

补码的加法运算(例2):

补码的减法运算:

补码的减法运算(例3):

5.3 小结

5.4 补充:原码、反码、补码的特性对比

各种码的基本特性总结:

5.5 移码

特点:

各种码的基本特性总结(补充):

用几种码表示整数:

练习:

至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习C语言的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

    好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
 编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android】TextView适配文本大小并保证中英文内容均在指定的UI 组件内部

问题 现在有一个需求&#xff0c;在中文环境下textView没有超过底层的组件限制&#xff0c;但是一切换到英文环境就超出了&#xff0c;这个如何解决呢&#xff1f;有啥例子吗&#xff1f; 就像这样子的。 解决 全部代码如下&#xff1a; <?xml version"1.0"…

华为数通方向HCIP-DataCom H12-821题库(单选题:141-160)

第141题 Router-LSA 能够描述不同的链路类型&#xff0c;不属于Router LSA 链路类型的是以下哪一项? A、Link Type 可以用来描述到末梢网络的连接&#xff0c;即 SubNet B、Link Type 可以用来描述到中转网络的连接&#xff0c;即 TranNet C、Link Type 可以用来描述到另一…

服务器安全-修改默认ssh端口

防火墙先打开指定端口,要不修改后连不上(端口需要在65535之内) firewall-cmd --list-ports firewall-cmd --add-port54111/tcp --permanent firewall-cmd --reload-------------------- 先让两个端口同时存在,等配置成功后关闭22端口 vim /etc/ssh/sshd_config重启sshd service…

复数的四则运算(java版)

复数的四则运算&#xff08;java版&#xff09; 目录 复数的四则运算&#xff08;java版&#xff09;介绍复数的四则运算实现思路代码1、封装复数类2、测试复数类3、代码测试结果 介绍 复数&#xff0c;为实数的延伸&#xff0c;它使任一多项式方程都有根。复数当中有个“虚数单…

windows系统配置tcp最大连接数

打开注册表 运行->regedit HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters目录下 增加一个MaxUserPort&#xff08;默认值是5000&#xff0c;端口范围是1025至5000&#xff09;MaxUserPort设置为65534&#xff08;需重启服务器&#xff09; 执行dos命令&…

Apache Celeborn 让 Spark 和 Flink 更快更稳更弹性

摘要&#xff1a;本文整理自阿里云/数据湖 Spark 引擎负责人周克勇&#xff08;一锤&#xff09;在 Streaming Lakehouse Meetup 的分享。内容主要分为五个部分&#xff1a; Apache Celeborn 的背景Apache Celeborn——快Apache Celeborn——稳Apache Celeborn——弹Evaluation…

【优化算法】Python实现面向对象的遗传算法

遗传算法 遗传算法(Genetic Algorithm)属于智能优化算法的一种&#xff0c;本质上是模拟自然界中种群的演化来寻求问题的最优解。与之相似的还有模拟退火、粒子群、蚁群等算法。 在具体介绍遗传算法之前&#xff0c;我们先来了解一些知识&#x1f9c0; DNA&#xff1a; 携带有…

解决jupyter notebook可以使用pytorch而Pycharm不能使用pytorch的问题

之前我是用的这个目录下的Python 开始更新目录 1、 2、 3、

【精算研究01/10】 计量经济学的性质和范围

一、说明 计量经济学是使用统计方法来发展理论或测试经济学或金融学中的现有假设。计量经济学依赖于回归模型和零假设检验等技术。计量经济学也可以用来预测未来的经济或金融趋势。 图片来源&#xff1a;https://marketbusinessnews.com 二、 计量经济之简介 计量经济学是对经济…

需求变化频繁的情况下,如何实施自动化测试

一.通常来说&#xff0c;具备以下3个主要条件才能开展自动化测试工作: 1.需求变动不频繁 自动化测试脚本变化的频率决定了自动化测试的维护成本。如果需求变动过于频繁&#xff0c;那么测试人员就需要根据变动的需求来不断地更新自动化测试用例&#xff0c;从而适应新的功能。…

基于水基湍流算法优化的BP神经网络(预测应用) - 附代码

基于水基湍流算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于水基湍流算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.水基湍流优化BP神经网络2.1 BP神经网络参数设置2.2 水基湍流算法应用 4.测试结果&#xff1a;5…

计算机视觉:深层卷积神经网络的构建

本文重点 上一节课程中我们学习了单卷积层的前向传播,本次课程我们构建一个具有三个卷积层的卷积神经网络,然后从输入(39*39*3)开始进行三次卷积操作,我们来看一下每次卷积的输入和输出维度的变化。 第一层 第一层使用3*3*3的过滤器来提取特征,那么f[1]=3,然后步长s[…