江郎的白日梦


私信TA

用户名:110666

访问量:108

签 名:

春游去动物园单挑老虎、狮子、棕熊、长颈鹿,一拳一个!

等  级
排  名 5713
经  验 1449
参赛次数 0
文章发表 1
年  龄 17
在职情况 待业
学  校 沈阳理工大学
专  业

  自我简介:

写出牛码东西!

TA的其他文章

解题思路:前面刚好有一个与这个类似的题目,那个题目相当是这个题目的正数部分

一步一步移位就好了

注意事项:

看到很多人不知道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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区