解题思路:前面刚好有一个与这个类似的题目,那个题目相当是这个题目的正数部分
一步一步移位就好了
注意事项:
看到很多人不知道0x80000000= 0b 1000 0000 0000 0000 0000 0000 0000 0000
剩下的你们就可以慢慢推了
参考代码:
#include<stdio.h>
int main()
{
int move(unsigned value, int n);
unsigned int a,b;
int n;
scanf("%u", &a);
//cin >> a;
//cin >> n;
scanf("%d", &n);
b = move(a,n);
printf("%u\n",b);
return 0;
}
int move(unsigned value, int n)
{
unsigned int temp;
if (n > 0)
for (int i = 0; i < n; i++)
{
temp = value & 1;//判断最后一位是否为1
if (temp == 1)
{
value = value >> 1;
value = value & 0x80000000;//把第一位变成1
}
else
value = value >> 1;
}
else if (n < 0)
{
for (int i = n; i < 0; i++)
{
temp = value & 0x80000000;//判断第一位是否为1
if (temp== 0x80000000)
{
value = value << 1;
value = value | 0x000000001;//把最后一位设置成1
}
else
value = value << 1;
}
}
return value;
}
0.0分
0 人评分
震宇大神的杀毒软件 (C++代码)浏览:1173 |
高精度加法 (C++代码)(大数加法)浏览:1008 |
ASCII帮了大忙浏览:797 |
字符串对比 (C语言代码)浏览:1469 |
校门外的树 (C语言代码)浏览:988 |
良心推荐——>题解1049:C语言程序设计教程(第三版)课后习题11.1 (C语言描述——简单明了,时间复杂度低)浏览:1318 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:420 |
马拦过河卒 (C语言代码)浏览:1213 |
很简单,,题解1041:C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:616 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:859 |