运算符面试题(剑指offer,面试宝典,牛客网)

  • 利用一个宏实现两个数的交换?
  • 不使用if,?,switch或者其他判断语句比较两个变量的大小?
  • 利用位运算实现加法?
  • 以下程序输出结果是?
  • 用位运算实现求平均数?
  • 不用循环判断一个数是不是2的N次方?

利用一个宏实现两个数的交换?

#include <iostream>
using namespace std;#define SWAP(a, b) 
{char tempbuf[10];  memcpy(tempbuf, &a, sizeof(a));  memcpy(&a, &b, sizeof(b));  memcpy(&b, tempbuf, sizeof(b));  
}int main()
{int a = 2;int b = 10;SWAP(a, b);cout<<a<<endl;cout<<b<<endl;return 0;
}

不使用if,?,switch或者其他判断语句比较两个变量的大小?

#include <iostream>
using namespace std;bool fun(int a, int b)
{return a > b;
}int max(int a, int b)
{bool flag = fun(a, b);return flag * a + (1 - flag) * b;//巧妙
}int main()
{return 0;
}
#include <iostream>
using namespace std;int max(int a, int b)
{return ((a + b) + abs(a - b)) / 2;
}int main()
{int a = 2;int b = 5;int n = max(a, b);cout<<n<<endl;return 0;
}

利用位运算实现加法?

#include <iostream>
using namespace std;int Add(int a, int b)
{if(b == 0){return a;}int sum, carry;sum = a ^ b;carry = (a & b) << 1;return Add(sum, carry);
}int main()
{int a = 10;int b = 245;cout<<Add(a, b)<<endl;return 0;
}

以下程序输出结果是?

#include <iostream>
using namespace std;int main()
{unsigned char a = 0xa5;          //首先是1010 0101unsigned char b = ~a >> 4 + 1;   //~优先级位于第2 >> 位于第6 +位于第5  所以先取反,然后计算出5,然后右移5位//a 取反 0101 1010 但是会发生整数提升,即a提升为int型,即左边补24个0,这时再右移5位变成//左边24个1  加上  0101 1010,由于char是一个字节,所以取8位变成 1111 1010  即250//cout<<b<<endl;printf("%d\n", b);return 0;
}

用位运算实现求平均数?

#include <iostream>
using namespace std;int Average(int x, int y)
{return (x & y) + ((x ^ y) >> 1);
}int main()
{int a = 10;int b = 30;cout<<Average(a, b)<<endl;return 0;
}

不用循环判断一个数是不是2的N次方?

#include <iostream>
using namespace std;int main()
{unsigned int a = 0;cout<<"Please input a number:";cin>>a;if((a & (a - 1)) == 0){cout<<"yes"<<endl;}else{cout<<"no"<<endl;}return 0;
}

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

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

相关文章

js 出现 replace 无法完全替换 指定字符串的时候的解决办法

/{/g 通过这种方式替换掉 replace( /这里填写需要被替换的字符串/g , "");

[WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)

今天做了一下WPS的笔试题&#xff0c;遇到了一道关于栈的题&#xff0c;觉得挺有意思的&#xff0c;就写篇博客分享一下吧~~ 题目要求&#xff1a;要求实现栈的数据结构&#xff0c;在该类型中实现一个能够得到栈的最大元素的max函数&#xff0c;在该栈中&#xff0c;调用max,…

MarkDown生成目录索引

123 在第一行开头写[TOC] 必须是第一行&#xff0c;不可以在前面加别的东西。 1 2 3

ubuntu 如何用root身份进行登录

公司有个小项目, 需要用python调用 sh脚本来执行一些东西, 执行脚本的时候需要输入密码 类似 sudo S paaswd 脚本, 但是给客户部署的话, 再让客户客户 保存密码到配置文件, 就显得麻烦, 就想到用root方式去登陆系统, 结果用了网上的方法, 还是登陆不进去, 最后结合简书的一个方…

[剑指Offer]替换空格

今天看题的时候&#xff0c;遇到一个替换空格的题目&#xff0c;分析一下哈。 题目要求&#xff1a;把字符串中的每个空格替换成“%20”。例如输入“we are happy”&#xff0c;则输出“we%20are%20happy”。 解题思路&#xff1a;我们首先想到的是&#xff1a;移位思想。遇到…

C语言关键字 ISO/ANSI C90 C99 C11

面试考点 https://blog.csdn.net/csdn_kou/article/details/81113215 * 有的常用的我们都不知道是关键字&#xff0c;比如sizeof.这是面试中的考点&#xff0c;要注意。 * 同时当回答C语言中有多少关键字时&#xff0c;要回答前题条件&#xff0c;时针对哪一个版本

vm15 安装 mac虚拟机的过程 转载的

https://blog.csdn.net/weixin_43299649/article/details/82881567

task_struct解析

task_struct是Linux内核的一种数据结构&#xff0c;它用task_struct结构体来描述进程的信息。下面来剖析一下进程中保存的主要的信息有哪些&#xff1f; struct task_struct {//进程的运行时状态volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */void …

ubuntu上有个小项目 ,需要调用xx.sh脚本, 出现无法识别 某些环境变量的解决办法,仅供参考

项目是用python 调用 同事写好的 xx.sh脚本&#xff0c; 在手动调用的时候 发现能正常调用&#xff0c; 当用python代码的时候&#xff0c; 就不行了&#xff0c; 通过日志发现&#xff0c; python调用的时候 不识别 ADNROID_NDK这个环境变量&#xff0c; 在python中 我是通过&…

关于sudo

之前&#xff0c;我们使用sudo的时候&#xff0c;是因为其用户本身具有root权限&#xff0c;所以可以sudo后执行相关操作&#xff0c;但是对于普通用户来说&#xff0c;它是既不具有sudo权限&#xff0c;又不在sudo用户组中&#xff0c;那么我们来研究一下如何将新创建的用户添…

在使用 python 封装的进程池 from concurrent.futures import ProcessPoolExecutor 遇到的问题

在ubuntu中&#xff0c;用的是python3.5 executeprebuildpath ExecutePrebuild()processpool ProcessPoolExecutor(1)processpool.submit(executeprebuildpath.run).add_done_callback(self.precallback)processpool.shutdown(waitFalse)self.runsign Trueself.runningprebu…

对pthread_create未定义的引用

pthread库不是Linux系统默认的库&#xff0c;连接时需要使用库libpthread.a,在编译中要加-lpthread [koulocalhost practive]$ gcc creat.c /tmp/ccPULtaF.o&#xff1a;在函数‘main’中&#xff1a; creat.c:(.text0x58)&#xff1a;对‘pthread_create’未定义的引用 coll…

Bash入门

Bash简介&#xff1a; Bash&#xff08;GNU Bourne-Again Shell&#xff09;是一个为GNU计划编写的Unix shell&#xff0c;它是许多Linux平台默认使用的shell。 shell是一个命令解释器&#xff0c;是介于操作系统内核与用户之间的一个绝缘层。准确地说&#xff0c;它也是能力…

ubuntu 设置分辨率 亲测可用 转载的

网上试了很多方法, 这家管用 https://blog.csdn.net/qq_35661436/article/details/72802040

线程之售票系统pthread_mutex,_lock,_unlock

先看一下这篇文章 https://blog.csdn.net/csdn_kou/article/details/81148268 四个人同时买票票&#xff0c;引出线程 #include "head.h" int ticket 100; void * route(void *arg) {char *id (char *)arg;while(1){if(ticket>0){usleep(1000);printf("…

Bash基本语法

1. 变量赋值 a375 hello$a 这里需要注意的是&#xff0c;等号两边不能有空格 还有一个例子是这样的 例1&#xff1a; 结果为&#xff1a; 关于上述&#xff0c;主要有如下几点&#xff1a; $hello和${hello}是一样的&#xff0c;在bash中如果遇到空格&#xff0c;tab键时&a…

windows下 , py运用了 进程池, 将py打包成exe,出现错误的 解决思路之一

在windows上,用pycharm开发了一个小项目, 用到了from concurrent.futures import ProcessPoolExecutor 本来在pycharm里面,运行的好好地, 可是打包成exe的时候, 发现 当程序运行到 进程池执行任务的时候,会创建一个新的界面, 猜测应该是创建了一个新的进程, 百度后,发现在 程序…

关于fd和fp(fd:file descirptor fp:file pointor)

通常&#xff0c;我们在输入数据或输出数据的设备为键盘或者显示器。当然&#xff0c;我们比较熟悉的输入输出&#xff0c;可能就是对于文件的操作&#xff0c;还有直接从终端输出&#xff0c;显示到显示器上。在C语言中&#xff0c;我们使用fopen,fclose,fread,fwrite对文件进…

粗谈pragma once与 #ifndef的区别

#ifnde不受编译器的任何限制&#xff1b; #pragma once不受一些较老的编译器支持&#xff0c;兼容性不够好