您现在的位置是:首页 > 正文

计算机实现加减乘除 ----- 二进制

2024-01-30 23:51:35阅读 0

计算机进行加减乘除运算实际都是以与、或、非、异或、移位来实现的。

一、加法运算

7 + 5 = 12
直接二进制进位计算:
 ...
 0111
+0101
------
 1100

计算机实现加法运算步骤:
1、分别得出进位和不需进位的结果,进位用&按位与计算,不需进位用 ^ 按位异或计算。( verilog运算符说明
2、若有进位,把进位结果左移1位后与不需进位的结果继续进行第一步的计算,直至进位结果为0。
异或结果即为加法运算结果。

例:a = 0110_1011(107) , b = 0111_1101(125)
1、	
	Carry_1 = a&b = 0110_1001
	Carry_1' = Carry_1 <<1 =1101_0010
	Non_carry_1 = a^b = 0001_0110
2、	
	Carry_2 = Non_carry_1 & Carry_1' = 0001_0010
	Carry_2' = Carry_2 <<1 =0010_0100
	Non_carry_2 = Non_carry_1 ^ Carry_1' = 1100_0100;
3、
	Carry_3 = Non_carry_2 & Carry_2'  = 0000_0100
	Carry_3' = Carry_3 <<1 =0000_1000
	Non_carry_3 = Non_carry_2 ^ Carry_2' =1110_0000
4、
	Carry_4 = Non_carry_3 & Carry_3'  = 0000_0000
	Non_carry_4 = Non_carry_3 ^ Carry_3' =1110_1000

所以 a + b = Non_carry_4 = 1110_1000(232)

网站文章

  • ARM v8 简介

    ARM v8 简介

    ARMv8 Registers General Purpose Registers ARMv8提供了31个64-bit的通用寄存器。分别是X0-X30。 每个64-bit的寄存器低32位又包含32-b...

    2024-01-30 23:51:28
  • CTF相关之代码py报错 from secret import FLAG ImportError: cannot import name ‘FLAG‘ from ‘secret‘

    CTF相关之代码py报错 from secret import FLAG ImportError: cannot import name ‘FLAG‘ from ‘secret‘

    运行python代码时报错: from secret import FLAG ImportError: cannot import name &#39;FLAG&#39; from &#39;secret&#39; (D:\python.10\lib\site-packages\secret\__init__.py)

    2024-01-30 23:50:58
  • struct device中消失的bus_id的取代方法

    <br />编写总线设备驱动程序的时候,发现2.6.33.2内核中的struct device已经没有bus_id的成员了,发现了const char *init_name成员。但是,这个成员是不能直...

    2024-01-30 23:50:51
  • 计算机越学越抽象,大学学的软件工程专业,现在发现很难,也不能转专业,该怎么办?...

    软件工程专业是最近几年就业情况非常好的专业之一,所以如果从就业的角度出发,软件工程专业是一个非常不错的选择。下面我简单的分析一下软件工程专业,然后针对可能出现的学习难点做一个剖析,再给出一个学习建议,...

    2024-01-30 23:50:47
  • 面试必答题“聊聊Java中线程的生命周期状态”如何破?

    面试必答题“聊聊Java中线程的生命周期状态”如何破?

    “聊聊Java中线程的生命周期状态吧!”这几乎是一道面试必答题,这道题怎么答才是最佳答案呢?本文就带大家来破解一下!01一张图说明线程生命周期JVM源码中将线程的生命周期分为新建(New)、可运行(R...

    2024-01-30 23:50:40
  • C语言,环形队列

    C语言,环形队列

    什么是环形队列?环形缓冲区是一个非常典型的数据结构,这种数据结构符合生产者,消费者模型,可以理解它是一个水坑,生产者不断的往里面灌水,消费者就不断的从里面取出水。那就可能...

    2024-01-30 23:50:11
  • 软件测试 理念 价值,软件测试价值观-SMBT新理念

    2、Most bug:最多Bug量变到质变是事物的变化规律,测试也如此,只有Bug的量上去了,产品的质量才能有所改观,如果Bug在数量上上不去,这对测试活动有信心谈何容易,一旦遇到这种情况测试经理们就...

    2024-01-30 23:50:01
  • ESP32开发:Clion配置IDF

    ESP32开发:Clion配置IDF

    可以通过安装包进行安装,如下图:下载链接如下:https://dl.espressif.cn/dl/esp-idf/?idf=4.4安装好后,IDF会添加环境变量IDF_TOOLS_PATH,如果要安...

    2024-01-30 23:49:53
  • idea连接数据库出错

    idea连接数据库出错

    解决Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezone’ property manually. serverTimezone 改为CST

    2024-01-30 23:49:24
  • STM32CubeMX+FreeRTOS实验---使用os timer

    STM32CubeMX+FreeRTOS实验---使用os timer

    在STM32CubeMX的FreeRTOS配置中,使能FreeRTOS的Software Timer功能 修改timer的名称及callback名称等 可以看到,在生成工程的main.c文件的main函数中,有以下code /* Create the timer(s) */ /* definition and creation of myTimer01 */ osTime

    2024-01-30 23:49:10