当前位置:网站首页>[Niuke classic question 01] bit operation
[Niuke classic question 01] bit operation
2022-07-07 00:49:00 【RookieStriver】
Here's the catalog title
JZ65 Do not add, subtract, multiply or divide
describe :
Write a function , Find the sum of two integers , It is required that... Should not be used in the function body +、-、*、/ Four operation symbols .
Data range : Both numbers satisfy -10 \le n \le 1000−10≤n≤1000
Advanced : Spatial complexity O(1)O(1), Time complexity O(1)O(1)
Example 1:
Input :1,2
Return value :3
Example 2:
Input :0,0
Return value :0
Algorithm ideas :
Decimal addition thought : 5+7=12, Three steps
First step : Add the values of each , It's not a carry , obtain 2.
The second step : Calculate the carry value , obtain 10. If the carry value of this step is 0, So the value of the first step is the final result .
The third step : Repeat the above two steps , Only the added value becomes the result of the above two steps 2 and 10, obtain 12.
Binary addition thought : Same as decimal , First calculate the addition result without considering carry (0+0 have to 0,1+1 Carried 0,1+0 have to 1), Use XOR to get ; Then calculate the carry result of the addition ( Same as 1 Move the position of the left one bit ), Use phase and shift back left to get .

Sample code :
int Add(int num1, int num2)
{
while (num2 != 0)// Carry is not 0 Continue to add with the addition result
{
int sum = num1 ^ num2;// Get the data of each addition regardless of carry
int temp = (num1 & num2) << 1; // Adding the same bits will carry
num1 = sum;
num2 = temp;
}
return num1;
}
int main()
{
int num1 = 0, num2 = 0;
scanf("%d%d", &num1, &num2);
int ret = Add(num1, num2);
printf("%d\n", ret);
system("pause");
return 0;
}
边栏推荐
- Quaternion attitude calculation of madgwick
- How to set encoding in idea
- Testers, how to prepare test data
- dynamic programming
- MySQL learning notes (mind map)
- 37 page overall planning and construction plan for digital Village revitalization of smart agriculture
- AI超清修复出黄家驹眼里的光、LeCun大佬《深度学习》课程生还报告、绝美画作只需一行代码、AI最新论文 | ShowMeAI资讯日报 #07.06
- Leecode brushes questions to record interview questions 17.16 massagist
- equals()与hashCode()
- Lombok makes ⽤ @data and @builder's pit at the same time. Are you hit?
猜你喜欢

基于GO语言实现的X.509证书

基於GO語言實現的X.509證書

Attention slam: a visual monocular slam that learns from human attention

Stm32f407 ------- SPI communication

Data analysis course notes (V) common statistical methods, data and spelling, index and composite index

509 certificat basé sur Go

. Bytecode structure of class file

Business process testing based on functional testing

Js+svg love diffusion animation JS special effects

智能运维应用之道,告别企业数字化转型危机
随机推荐
Leecode brush question record sword finger offer 58 - ii Rotate string left
准备好在CI/CD中自动化持续部署了吗?
Levels - UE5中的暴雨效果
Distributed cache
Advanced learning of MySQL -- basics -- multi table query -- external connection
Leecode brush questions record sword finger offer 43 The number of occurrences of 1 in integers 1 to n
【批处理DOS-CMD命令-汇总和小结】-查看或修改文件属性(ATTRIB),查看、修改文件关联类型(assoc、ftype)
ActiveReportsJS 3.1中文版|||ActiveReportsJS 3.1英文版
Equals() and hashcode()
Explain in detail the implementation of call, apply and bind in JS (source code implementation)
The difference between redirectto and navigateto in uniapp
Stm32f407 ------- SPI communication
Three methods to realize JS asynchronous loading
【vulnhub】presidential1
File and image comparison tool kaleidoscope latest download
String comparison in batch file - string comparison in batch file
C9 colleges and universities, doctoral students make a statement of nature!
以机房B级建设标准满足等保2.0三级要求 | 混合云基础设施
Js+svg love diffusion animation JS special effects
Model-Free Control