文章目录

  • 加法:
  • 乘法:
    • 问题1:
    • 问题2:

加法:

#include <iostream>
using namespace std;
int main()
{int x, y;cin >> x >> y;int z = x ^ y;int d = x & y;if (d) {while (d) {int end = (d << 1); d = (end & z);z = (end ^ z);}printf("%d",z);}else {printf("%d", z);}}

异或本身就是不进位的加法,用异或之后然后进行是否有需要进位的判断,如果需要进位的话,那么进行左移一位(因为进位是进前一位),进位完后,进行异或相加,加完之后需要再次判断是否有进位(因为一次相与只判断一次相加进位),并不能代表进位一次后不存在第二次进位,或者第三次比如:二进制1111+0001,就需要进位4次

乘法:

#include <iostream>
using namespace std;
int main()
{int x, y,z,input,inputs;cin >> input >> inputs;x = inputs;y = inputs;for (int i = 0; i <input-1; i++) {z = x ^ y;int d = x & y;//d=4int ands;if (d) {while (d) {int end = (d << 1);d = (end & z);z = (end ^ z);}x = z;    }else {x = z;  }}printf("%d", x);
}

乘法的问题有点多的,我调了半小时,问题如下:

问题1:

z = (end ^ z);

这行代码起初我直接用个新的ands变量来接收,那样的话,第二次异或的时候仍然异或的是z = x ^ y;这个变量,那样的话,只异或一次是对的,异或两次以上,直接出错

问题2:

             d = (end & z);z = (end ^ z);

这两行代码顺序不能颠倒,颠倒之后算出值为负数,因为循环指定是d值判断,d又是靠之前的z值,而不是计算后的z值

位运算符实现加法和乘法相关推荐

  1. java int 运算符_Java 位运算符和 int 类型的实现

    Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.=.<= # 逻辑运算符 && ...

  2. java BigDecimal加法/减法/乘法/除法 保留两位小数

    1.BigDecimal类概述及其构造方法 由于在运算的时候,float类型和double类型很容易丢失进度,所以,为了能够精确的表示.计算浮点数,java提供了BigDecimal类   BigDe ...

  3. 在学习Python基础中需要知道的知识点:运算符大全,收藏,以后方面查询(算术运算符、赋值运算符、比较运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级))

    一.算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被 ...

  4. swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)...

    swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...

  5. java的7种位运算符

    java的7种位运算符 1 概述 2 七种位运算符的运算规则 2.1 &按位与运算符 2.2 |按位或运算符 2.3 ~取反运算符 2.4 ^异或运算符 2.5 <<左移运算符 2 ...

  6. MySQL运算符(逻辑运算符,比较运算符,位运算符)

    MySQL的运算符包括: 算术运算符 (类似数学中的 + - * /),在此基础上增加取余,也就是模运算,比较运算符,逻辑运算符,非符号运算符,位运算符. 本次重点讲解 逻辑运算符,和比较运算符,非符 ...

  7. java 大于或等于_【Java】运算符(算术、赋值、比较(关系)、逻辑、条件、位运算符)...

    运算符 运算符: 1.算术运算符 2.赋值运算符 3.比较运算符(关系运算符) 4.逻辑运算符 5.条件运算符 6.位运算符 表达式:操作数+运算符 1.按照操作数个数的分类: (1)一元运算符:操作 ...

  8. 【组合数学】基本计数原则 ( 加法原则 | 乘法原则 )

    文章目录 1. 加法原则 ( 1 ) 加法原则 ( 不能叠加 的事件才能用 加法原则 | 适用于 分类选取 ) ( 2 ) 乘法法则 ( 相互独立 的 事件 才能用 乘法法则 | 适用于 分步选择 ) ...

  9. java if赋值语句_Java基础第3天+运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算符)、Scanner键盘录入、if语句...

    1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++ ...

最新文章

  1. 《小团团团队》第五次作业:项目需求分析改进与系统设计
  2. redisson redlock(基于redisson框架和redis集群使用分布式锁)
  3. Java编程思想—第十二十三章
  4. 建武28a对讲机最大距离_小米对讲机再出新品:不但价格低,还能一键写频
  5. python实时定位gps_Python获取原图GPS位置信息,轻松得到你的活动轨迹!
  6. VM12 虚拟机使用桥接模式却连不上网的解决办法
  7. 卡巴斯基实验室解析勒索软件的发展与攻防
  8. PHP宝塔IDC分销系统,PHP宝塔IDC分销系统,宝塔面板开虚拟主机程序–Bty1.0
  9. Ansys 2022 安装教程(附赠免费的安装包)
  10. 微信小程序-从0到1实现小程序内打开H5链接或跳转到某个公众号文章
  11. 5、设备树操作reg
  12. python字符串前面u、r、b含义以及str、bytes互转
  13. 大数据的接触,带你初步认识什么是大数据,云计算以及物联网
  14. AnyProxy抓包实践
  15. Elsevier系旗下期刊论文投稿流程
  16. 刘慈欣 计算机工程师,刘慈欣:《三体》之外,我只是个普通的工程师
  17. android屏幕适配的目的,剖析Android屏幕适配及各方案
  18. 使用airodump-ng扫描网络
  19. 无知APP,大学课后习题答案
  20. 沃达丰首次成功将5G手机接入网络 速度是当前4G技术10倍

热门文章

  1. ML之回归预测:利用6个单独+2个集成模型(LassoR、KernelRidgeR、ElasticNetR、GBR、XGBR、LGBMR,Avg、Stacking)对自动驾驶数据集【5+1】回归预测
  2. 成功解决TypeError: a bytes-like object is required, not 'str'
  3. Py之wxPython:利用wxPython设计CMD软件窗口进行交互可视化
  4. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)
  5. 成功解决AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘?
  6. Nmap扫描参数解析(转)
  7. 契约式设计(DbC)感想(二)
  8. 【转载】[OS X笔记]安装MacPorts
  9. 飞鸽传书找不到其他人的问题
  10. 一个好的软件开发人员的标准