C++正整数的加法运算(不使用+-*/运算符号)

/////任意正整数的加法,不使用加减乘除运算符实现正数的加法.
#include <iostream>
using namespace std;
int add(int x,int y)
{
	int k = 0;
	int result = 0;
	int flog = 0;
	while( x!=0 || y!=0 || flog!=0)
	{
		int i = x&0x1;
		int j = y&0x1;
		result = ((i^j^flog)<<k) | result;
		k++;
    int haha=0;
		if((i==1 && j!=1) || (i!=1 && j==1))
		{
				if(flog==1)
					{
					flog=1;
					haha=1;
					}
				else
					flog=0;
		}
		if(i==1 && j==1)
			flog = 1;
		else
			if(!haha)
			{
			flog = 0;
			}
		x>>=1;
		y>>=1;
	}
	return result;
}
int main()
{
	cout<<add(1000,3)<<endl;
	return 0;
}

时间: 2024-08-29 08:12:30

C++正整数的加法运算(不使用+-*/运算符号)的相关文章

赋值运算和比较运算

赋值运算:+=   -=  *=  /= int g=3; g+=4;//相当于g=g+4 System.out.println(g);//结果g是7 注意: short s=3; //s=s+4; 编译失败,可能损失精度,因为他做两次运算加法运算和赋值运算,4是int类型的不能用short来装 s+=4;//编译成功,因为他只做一次赋值运算,内部有个自动转换的机制 比较运算符: 注1:比较运算符的结果都是boolean型,即要么是true,要么是false.注2:比较运算符"=="不

学习 opencv---(10)形态学图像处理(2):开运算,闭运算,形态学梯度,顶帽,黒帽合辑

上篇文章中,我们重点了解了腐蚀和膨胀这两种最基本的形态学操作,而运用这两个基本操作,我们可以实现更高级的形态学变换. 所以,本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和腐蚀技术,来执行更加高级的形态学变换,如开闭运算.形态学梯度."顶帽"."黑帽"等等. 第二件事,是浅墨想跟大家做一个关于OpenCV系列文章的书写内容和风格的思想汇报. 是这样的,浅墨发现最近几期写出来的文章有些偏离自己开始开这个专栏的最初的愿望--原理和概念部分占的

python开发基础:三元运算&amp;生成式&amp;成员运算&amp;解压法&amp;队列堆栈&amp;数据类型转换

一,三元运算&生成式&成员运算&解压法&队列堆栈&数据类型转换,都在一个code里 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #三元运算 5 #if条件成立的结果 if 条件 else else条件成立的结果 6 #原来逻辑 7 # a,b=10,20 8 # if a > b: 9 # c = 5 10 # else: 11 # c = 10 12 # print(c) 13 #三元逻辑 14 # a

三木运算,三元运算

三木运算,三元运算 name = 值1 if 条件 else 值2 深拷贝浅拷贝 str创建一个值不能修改,如果修改在,创建一个 对于int和str 赋值,深拷贝,浅拷贝地址是不变的 对于dict,list,tup 浅拷贝仅拷贝最外层 深拷贝是除了最内层都拷贝 函数 动态参数 万能参数 *arges **kwarges 局部变量和全局变量 全局 大写 修改,global 局部 小写,仅在代码中执行

形态学滤波:(1)腐蚀与膨胀 (2)开运算,闭运算,形态学梯度,顶帽,黑帽

一.形态学概述 图像处理中的形态学一般指的是数学形态学. 数学形态学是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论.其基本运算包括:二值腐蚀和膨胀,二值开闭运算,骨架抽取,极限腐蚀,击中击不中变换,形态学梯度,top-hat变换,颗粒分析,流域变换,灰值腐蚀和膨胀,灰值开闭运算,灰值形态学梯度等. 简单来讲,形态学操作就是基于形状的一系列图像处理操作. 二.形态学滤波 (1)腐蚀与膨胀 膨胀和腐蚀能实现多种多样的功能,主要如下: 消除噪声: 分割(isolate)

10亿次的比较--PHP”与“运算和”模“运算效率比较

在涉及到计算数字的奇偶是,一般都用到"与"运算和"模运算",那么这两种运算用PHP语言来实现的话,哪个更快呢?在比较前,我是倾向于前者的.但结果却让我很诧异.代码如下: "与"运算: <?php set_time_limit(0); $i = 1; $t1 = microtime(true); while($i < 1000000001){ $i ++ & 1; } $t2 = microtime(true); echo $t

妙用Pixel bender执行复杂运算/普通数据运算 传递Vector数组

最近发现pixel bender有两个特殊点: 1.Input Image4,不单单可以用BitmapData来初始化,也可以用Vector.<Number>初始化. 2.ShaderJob,可以使用Vector.<Number>接收pb的运算结果,同时,这个输出结果不限于[0-1].结果会从上往下一行一行的把每个像素的各通道信息填入到Vector中 基于这两点,就可以发现,可以把复杂的数学运算交给pb.尤其是类似于图像这样二维的信息,例如3d建模中,水面波动的计算. AS代码:

赋值运算,拷贝运算,运算符重载,函数调用入栈,寄存器

赋值运算与拷贝运算的区别 如果对象在申明之后进行赋值运算,我们称之为赋值运算.例如:class1 A("af"); class1 B;B=A;此时实际调用的类的缺省赋值函数B.operator=(A); 如果对象在申明的同时马上进行初始化操作,则称之为拷贝运算.例如: class1 A("af"); class1 B=A; 此时其实际调用的是B(A)这样的浅拷贝操作. C++与C#对象的内存分配方式的不同 在C++中,对象的实例在编译的时候,就需要为其分配内存大小,

位运算与乘除运算的对比实验

Java 的JDK中存在很多位运算的使用,其目的是为了让代码跑的更快一些,我们做一个实验,看看到底可以节省多少计算时间. 以下代码中,分别使用了乘除运算和位运算来进行了一亿次基础操作,并打印了所消耗的时间. /** * 比较乘除运算和位运算时间消耗上的差距 */ public class TestBitOpr { public static void main(String[] args){ int j = 10; long start = System.currentTimeMillis();