[模拟]位运算实现四则运算

摘要:
1consintmod=1000;23intbitpow(intx,intn){4intans=1;5intt=x;6while(n){7if(n&1){8ans=(ans*t)%mod;9}10t=t*t%mod;11n˃˃=1;12} 13名回返者;14} 1516intbitadd(intx,inty){17intxr=x^y;18intnd=x&y;19while(nd){20intxr1=xr;21intnd1=nd˂˂1;22xr=xr1^nd1;23nd=xr1&nd1;24}25returnxr;26}2728 intnegative(intx){29 returnbitadd(~x,1);30}3132 intbitminus(intx,inty){33 returnbitdd(x,negative,y));34}3536 intbitmulti(intx、inty){37 intans=0;38 while(y){39if(y&1){40ans=bitadd(ans,x);41}42x=(x˃1);44}45名回返者;46}4748intbitdiv(intx,inty){49intans=0;50for(inti=31;i˃=0;i-){51if((x˃˃i)˃=y){52ans+=(1˂˂i);53x-=(y˂˂i;54}55}56返回器;57}
 1 const int mod = 1000;
 2 
 3 int bitpow(int x, int n) {
 4     int ans = 1;
 5     int t = x;
 6     while(n) {
 7         if(n & 1) {
 8             ans = (ans * t) % mod;
 9         }
10         t = t * t % mod;
11         n >>= 1;
12     }
13     return ans;
14 }
15 
16 int bitadd(int x, int y) {
17     int xr = x ^ y;
18     int nd = x & y;
19     while(nd) {
20         int xr1 = xr;
21         int nd1 = nd << 1;
22         xr = xr1 ^ nd1;
23         nd = xr1 & nd1;
24     }
25     return xr;
26 }
27 
28 int negtive(int x) {
29     return bitadd(~x, 1);
30 }
31 
32 int bitminus(int x, int y) {
33     return bitadd(x, negtive(y));
34 }
35 
36 int bitmulti(int x, int y) {
37     int ans = 0;
38     while(y) {
39         if(y & 1) {
40             ans = bitadd(ans, x);
41         }
42         x = (x << 1);
43         y = (y >> 1);
44     }
45     return ans;
46 }
47 
48 int bitdiv(int x, int y) {
49     int ans = 0;
50     for(int i = 31; i >= 0; i--) {
51         if((x>>i) >= y) {
52             ans += (1<<i);
53             x -=(y<<i);
54         }
55     }
56     return ans;
57 }

免责声明:文章转载自《[模拟]位运算实现四则运算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[HDOJ5391]Zball in Tina Town[HDOJ1233]还是畅通工程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

实验一 小学四则运算修改版

#include<stdio.h>#include<stdlib.h>#include<time.h>intn;//记录输入的题目个数inta,b,c,da;//a,b分别代表第一,第二操作数,c代表得数,da代表输入的答案floatscore=0;//记录总分数floatj,k,L;//分别计算答对的分数floatl...

实验一 小学四则运算

#include<stdio.h>#include<stdlib.h>#include<time.h> int n;//记录输入的题目个数 int a,b,c,da;//a,b分别代表第一,第二操作数,c代表得数,da代表输入的答案 //进行加法运算 voidjia(); voidjian(); voidchen();...

四则运算 python

2018103004四则运算练习软件项目报告 此作业的要求参见链接的任务三个人任务:https://mooc1-1.chaoxing.com/mycourse/studentstudy?chapterId=131597991&courseId=89792820&clazzid=787341&enc=c382f8d8d1497e3...

ios 按位运算---分解ZFPlayer

按位与&(位运算时,相同为1,不同为0) 按位或 |(位运算时,有1为1,全0为0) 按位异或 ^(位运算时,相同为0,不同为1) 按位取反~(0变1,1变0) 左移《把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方 右移》把整数a的各二进位全部右移n位,保持符号位不变,符号位补齐。右移n位其实就是除以2的n次方...

小学四则运算法则训练

PSP表格: 解题思路: 算式的随机抽取---结果正误及时判断---整数除法的分数表达 实现过程: Fraction(n1, n2)函数的使用使得结果可以得出一个分数。 自定义函数f()来实现假分数变为带分数。 代码实现: 1 import random 2 #四则运算 3 from fractions import Fraction 4 d...

个人项目--多元四则运算

作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 github地址:https://github.com/timchan1997/mygit 一、题目要求: 像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。具体要求:任何编程语言都可以,命...