`
wss71104307
  • 浏览: 222948 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何用加1操作实现减法

阅读更多

转载自  http://www.matrix67.com/blog/archives/944/trackback

 

 

 设想这样一个计算机系统,它只支持以下几个操作:
    1. 定义变量、给变量赋值;
    2. 变量自身加一;
    3. 令一段语句循环执行指定的次数。
  这个系统只处理且只能处理0和正整数。系统不存在“溢出”的问题。
  注意这个系统没有比较运算,事实上它甚至不存在Boolean值和判断语句。
  循环语句也不是FOR i=a TO b DO的形式,只能是LOOP n的形式。

  在这个系统上实现加法很容易,让a自增b次即可。现在的问题是,你能在这个系统上实现减法吗?

 

  问题的关键在于如何实现自减一操作。
  本来让-1自增n次即可实现n的自减的,但系统偏偏又不支持负数。
  网友Dingding给出了一个答案:

tmp = 0
result = 0
loop(n) {
   result = tmp
   tmp++
}

  这段代码执行后,result的值将变为n-1。注意到这段代码在自增时是如何巧妙地延迟了一步的。
  现在,我们相当于有了自减一的函数dec。实现a-b只需要令a自减b次即可:

result = a
loop(b) {
   dec(result)
}

 

分享到:
评论

相关推荐

    设计实现一个加/减法器

    本篇文章将详细介绍如何设计和实现一个既能执行加法又能执行减法操作的数字逻辑电路——加/减法器。该电路的设计核心在于利用控制信号M来切换加法与减法模式:当M=0时,电路作为加法器工作;而当M=1时,则转换为减法...

    MFC实现加减法源码

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来实现简单的加法和减法操作。MFC 是微软提供的一种C++类库,它为Windows应用程序开发提供了丰富的支持,包括用户界面元素、文件操作、网络...

    C++语言矩阵加减法实现

    2. **减法运算问题**:在实现减法运算时,同样需要关注非零元素的位置和数量。如果仅考虑了其中一个矩阵的情况而忽略了另一个矩阵,则会导致错误的结果。 3. **调试策略**:在调试过程中,可以逐步输出中间结果,以...

    基本模型机的设计-加减法指令的实现

    1. 操作数位宽:确定操作数的大小(如8位、16位、32位等)会影响加减法的结果范围及是否需要进行进位或借位。 2. 溢出处理:当加减运算导致结果超出可表示的数值范围时,需要进行溢出检测并处理,通常有溢出标志位...

    不用+/-实现的加减法

    在编程领域,有时候我们需要在没有直接使用加号`+`和减号`-`的情况下实现加减法。这种情况下,我们可以利用位操作,如异或(XOR)和与(AND),结合递归等编程技巧来达到目的。下面将详细讨论这些方法。 首先,异或...

    高精度加减法

    本文将深入探讨一种使用C语言实现的高精度加减法方法,旨在理解和掌握如何有效地处理大数运算。 #### 核心概念解析 在C语言中,大数通常被表示为一个数组,其中每个元素代表数的一位或几位数字。通过这种方式,...

    基本模型机的设计——加减法指令的实现

    加减法指令是计算机指令系统中的一种基本指令,用于实现加法和减法操作。在基本模型机中,需要设计和实现加减法指令,以满足计算机的基本运算需求。 基本模型机的设计 基本模型机的设计是计算机组成原理的核心内容...

    十六进制加减法 16进制加减法工具

    如果继续加,如0x11+0x1,结果是0x12,因为在十六进制中,16+1=17,相当于十进制的17,用0x11表示,而个位上的1+1=2,所以结果是0x12。 十六进制减法的规则与加法类似,但要注意借位。如果被减数小于减数,需要从...

    计算机加减法指令的实现

    计算机加减法指令的实现 计算机加减法指令的实现是计算机组成原理课程设计的重要内容之一。通过使用软件 HKCPT,了解程序编译、加载的过程,并通过微单步、单拍调试,理解模型机中的数据流向。下面是计算机加减法...

    10以内加减法自动出题器

    标题 "10以内加减法自动出题器" 指的是一款专为儿童或初学者设计的数学学习工具,它基于Excel实现,能够自动生成10以内的加法、减法以及加减混合运算题目。这样的工具对于基础数学技能的训练极其有用,可以帮助用户...

    c++ 任意长度加减法计算

    在C++编程中,实现任意长度的加减法计算是一项挑战性的任务,它涉及到数字的存储、位操作以及进位处理。在这个数据结构的课程设计中,我们将探讨如何使用C++来实现这样的功能。 首先,我们需要理解的是,任意长度的...

    用C语言实现谱减法

    谱减法是一种在语音信号处理中广泛使用的降噪技术,主要目标是提高语音信号的信噪比(SNR)。在嘈杂环境下,噪声往往会干扰语音的清晰度,谱减法通过分析并减去噪声的频谱特性来恢复纯净的语音信号。在C语言中实现谱...

    小学生加减法_小学生加减法_

    标题中的"小学生加减法"指的是面向小学生的基础数学运算,主要涵盖加法和减法的知识点。这是小学数学教育的初期阶段,旨在帮助孩子们建立基本的算术技能,理解数的增减关系,并能准确执行计算。在这个阶段,学生通常...

    用C语言实现多项式加减法

    本篇将详细探讨如何使用C语言,结合链表数据结构,来实现多项式的加减操作。链表是一种灵活的数据结构,非常适合表示多项式,因为它可以动态地存储不同指数的系数,而无需预先确定系数的数量。 首先,我们需要定义...

    一位十进制数加减法运算

    加减法运算电路是通过四位二进制超前进位全加器 74ls283N 元器件、或门、与门的组合来实现数字相加和减法。 在该设计中,我们使用了两个七段译码显示器来显示输入的两个一位十进制数,并通过开关选择运算方式加或者...

    模型机的总体设计-加减法的实现

    (9)说明在使用软件 HKCPT 的联机方式与脱机方式的实现过程(包括编制程序中加减法指令的时序分析,累加器 A 和有关寄存器、存储器的数据变化以及数据流程)。 (10)课程设计总结(设计的特点、不足、收获与体会...

    随机加减法生成器

    随机加减法生成器的使用,可以有效弥补传统教科书练习题的局限性,让学习过程更具趣味性和挑战性。它可以根据学生的实际水平调整题目的难度,包括设置最大数值范围、控制运算类型的比例(如加法多于减法或反之)以及...

    计算机组成原理课程设计---基本模型机的设计——加减法指令的实现.docx

    计算机组成原理课程设计的核心任务是构建一个基本模型机,该模型机能够实现加减法指令。设计目的是通过实际操作加深对计算机系统结构的理解,将学到的理论知识如电工电子学、数字逻辑、汇编语言程序设计和计算机组成...

Global site tag (gtag.js) - Google Analytics