解题思路:前面刚好有一个与这个类似的题目,那个题目相当是这个题目的正数部分
一步一步移位就好了
注意事项:
看到很多人不知道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二级辅导-温度转换 (C语言代码)浏览:2391 |
C语言程序设计教程(第三版)课后习题10.7 (C++代码)(都说了scanf和gets一般不要混着用)浏览:1130 |
点我有惊喜!你懂得!浏览:2219 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码) 用函数传参的方法浏览:4101 |
【回文数(二)】 (C语言代码)浏览:878 |
简单编码 (C++代码)浏览:683 |
A+B for Input-Output Practice (V) (C语言代码)浏览:627 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1101 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:844 |
校门外的树 (C语言代码)浏览:714 |