不使用加减运算符实现整数加和减

news2024/11/24 16:01:45

文章目录

进位
进位
加粗

最近想出了不适用运算符实现加与减

在这里插入图片描述

首先按位与找出的是需不需要进位

按位与是两边同时为1,则为1,那么如果两边同时为1的话,是不是就该进位?所以我们用按位与来判断是否需要进位

然后再按位异或找出不同的位数

按位异或是两边不相等,也就是1 和 0的时候才会1,那我如果在整数的二进制为中,一边是0,一边是1,我们是不是直接相加就可以了呢? 那么相加的结果就是1

最后按位或

按位或是两边只要有一个是1,就为1,那么我们是不是可以用这个来实现我们前面按位与和按位异或的结果相加呢?答案是可以的。

但是使用按位或的前提是按位与的结果按位异或的结果,这两个再按位与的结果为0,才可以进行按位或,就和上面那个图一样。

4 – 0000 0100
5 – 0000 0101
4 & 5
0000 0100
不是0再左移一位
0000 1000

----------------------------------------------------分隔栏
4 – 0000 0100
5 – 0000 0101
4 ^ 5
0000 0001

(4 & 5) & (4 ^ 5) == 0
此时直接按位或
0000 1000
0000 0001
按位或
结果为0000 1001
只有当按位与和按位异或按位与的结果为0的时候,才能按位或,不然的话还是有可以进位的,如果不这么继续整的话,就会算错
上图中4,5只是一次就搞定了,下面在举一个 15 和 25 的例子。

在这里插入图片描述
代码实现:

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	while (a & b)
	{
		//创建一个变量存储按位异或的值,不然b的值改变了,
		//那接下来 a = (a & b) << 1的值也不对 
		int c = 0;
		c = a ^ b;
		a = (a & b) << 1;
		b = c;
	}
	printf("%d\n", a | b);
	return 0;
}

在这里插入图片描述

减法也可以

在这里插入图片描述

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

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

相关文章

LAPGAN浅析

LAPGAN 引言 在原始 GAN和CGAN中&#xff0c;还只能生成 16*16, 28*28, 32*32 这种低像素小尺寸的图片。而LAPGAN首次实现 64*64 的图像生成。与其一下子生成这么大的图像 &#xff08;包含信息量这么多&#xff09;&#xff0c;不如一步步由小到大&#xff0c;这样每一步生成…

【产品经理修炼之道】- B端产品经理之业务系统设计

很多时候&#xff0c;业务系统建设好坏决定了企业的核心竞争力。作为产品经理&#xff0c;如何建设好业务系统这种OLTP类产品&#xff1f;本文从梳理业务流程、参与业务调研和设计业务系统三个步骤&#xff0c;教大家如何做好业务系统建设。 很多人都说设计B端产品最重要的是搞…

线性代数:抽象向量空间

一、说明 有些函数系列极具线性代数的向量特征。这里谈及多项式构成函数的线性代数意义。问题是这个主题能展开多少内涵&#xff1f;请看本文的论述。 二、线性空间和向量 让我先问你一个简单的问题。什么是向量&#xff1f;为了方便起见&#xff0c;二维箭头从根本上说是平…

【UE 材质】水波纹效果

效果 模拟雨水打落在水面上的效果 步骤 1. 下载所需纹理和纹理 纹理2. 新建一个材质&#xff0c;这里命名为“M_WaterRipples” 打开“M_WaterRipples”&#xff0c;添加一个纹理采样节点&#xff0c;纹理使用第一步下载的纹理 将纹理采样节点的R通道连接到基础颜色&#x…

04_Scala网络序列化

文章目录 **1.网络****2. 序列化** 1.网络 Scala进行网络数据交互&#xff0c;使用是Java的IO类 实现案例&#xff1a;客户端连接服务器&#xff0c;向服务器发送数据&#xff1b; 1.创建两个文件&#xff0c;CLIENT&#xff0c;Server obj类型** ** Server端 2.在Server端…

2024中国航空航天暨无人机展诚邀全国相关商协会组团参展

2024中国航空航天暨无人机展诚邀全国相关商协会组团参展 2024中国航空航天暨无人机展览会诚邀全国各关联商会、协会&#xff0c;联盟、各专业会展公司、各级城市政府及关联产业园区、各关联网站报纸杂志及平台等组团参展 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民…

OpenHarmony ArkUI 实战开发—ETS 装饰器解读

前言 最近利用空闲时间在学习华为方舟开发框架&#xff08;简称&#xff1a;ArkUI&#xff09;的ets开发&#xff0c;发现在ets语言中装饰器的有着非常重要的作用&#xff0c;在写每一个自定义组件时都需要用到它&#xff0c;看到装饰器这个字眼&#xff0c;想起之前学过的设计…

偏见将如何扼杀你的人工智能/机器学习策略以及如何应对

任何类型的模型中的“偏差”都描述了模型对提示或输入数据的响应不准确的情况&#xff0c;因为它没有接受足够的高质量、多样化的数据训练来提供准确的响应。一个例子是 苹果的面部识别手机解锁功能对于肤色较深的人来说失败率明显高于肤色较浅的人。 该模型没有接受过足够多的…

分享8款安全监控/日志记录工具

安全监控工具的作用是实时监控和分析系统的安全状态&#xff0c;而日志记录工具的作用主要是记录系统的运行过程及异常信息。 关于安全监控工具&#xff0c;它通过对计算机系统、网络、应用程序和数据进行实时监控和分析&#xff0c;帮助发现和防止安全威胁和攻击。这种监控不…

2024全网最火的接口自动化测试,一看就会

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

2024信息系统、信号处理与通信技术国际会议(ICISPCT2024)

2024信息系统、信号处理与通信技术国际会议&#xff08;ICISPCT2024) 会议简介 2024国际信息系统、信号处理与通信技术大会&#xff08;ICISPCT2024&#xff09;将在青岛隆重开幕。本次会议旨在汇聚全球信息系统、信号处理和通信技术领域的专家学者&#xff0c;共同探索行业…

全网最全的接口测试教程

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 其实我觉得接口测试很简单&#xff0c;比一般的功能测试还简单&…

组合模式【结构型模式C++】

1.概述 组合模式又叫部分整体模式属于结构型模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次。 2.结构 组件&#xff08;Component&#xff09;:定义了组合中所有对象的通用接口&#xff0c…

信号的调幅(AM)、调频(FM)与调相(PM)对频谱结构的影响(找找复刻电赛D题的伙伴)

0.目录 &#xff08;1&#xff09;调制与解调的基本概念 &#xff08;2&#xff09;调幅对频谱结构的影响 &#xff08;3&#xff09;调频信号幅值变化对频谱结构的影响 &#xff08;4&#xff09;调频信号频率变化对频谱结构的影响 &#xff08;5&#xff09;调幅调频信号…

Java Web 网页设计(3)

3.servlet JavaWeb——Servlet&#xff08;全网最详细教程包括Servlet源码分析&#xff09;-CSDN博客 servlet java不支持 只有Tomcat支持 使用时添加一下 servlet中最常用的两个&#xff08;固定&#xff09;方法&#xff1a; 下面我们创建一个servlet类 package com.oracle…

PE文件(三)节表

节表引入 PE文件的结构是由DOS头PE标记标准PE头可选PE头节表多个节构成的&#xff0c;如下便是一个pe文件结构图&#xff0c;它的每一段都可以被称作节 图中这么多的节在硬盘上和内存中的存储位置都由节表去管理和记录&#xff0c;而不是随意的存储。 节表相当于是一个对各个…

论文解读:Label Hallucination for Few-Shot Classification

文章汇总 动机 本文的一个思想就是&#xff1a;尽管新类的标签并不能“恰如其分”地表示基数据集中的样本&#xff0c;但是很多基数据集的样本会包含与新类中相似的对象&#xff0c;例如&#xff0c;基数据集中的老虎和新类中的猫有相似的特征&#xff0c;那么就有60%的概率将…

补充centos7软件包的方式/编译安装源码包软件/企业案例/linux进程管理/企业管理进程系列命令(企业经验)--8820字详谈

cenros7软件包的安装方式 软件包分类安装方式优缺点rpm包软件开发商编译打包&#xff0c;安装简单&#xff0c;快速软件版本可能偏低&#xff0c;安装路径是固定好的源码包自己手动编译安装并且复杂软件爸爸随意选&#xff0c;可以定制安装路径二进制包解压就可以使用不能进行…

new String和直接赋值的一些问题

分析1 我们先看以下代码&#xff1a; String str1 "abc"; // 在常量池中String str2 new String("abc"); // 在堆上System.out.println(str1 str2)以上结果的输出是什么&#xff1f; 输出&#xff1a;false 前置知识&#xff1a; 在JVM中&#xff0c…

PTA 天梯赛 L1-010 比较大小【C++】 L1-011 A-B 【C++ vector动态数组】【Python 字符串replace函数】

L1-010 比较大小 判断顺序很重要 #include<iostream> using namespace std; int main() {int a, b, c;cin >> a >> b >> c;int temp;if (a > b) {temp a;a b;b temp;}if (a > c) {temp a;a c;c temp;}if (b > c) {temp b;b c;c te…