摸鱼人生 2021-11-02 17:24 采纳率: 0%
浏览 56
已结题

编程语言实现负数转换成补码的进位逻辑

请问用主流编程语言(C++、C#、JAVA、Python等)实现负数转换成补码时进位逻辑

  • 写回答

2条回答 默认 最新

  • 摸鱼人生 2021-11-05 20:56
    关注

    都说开会员有专家24小时内解答,这都两天了,算了!
    自问自答吧:负数补码,是反码加1,负数进位是从二进制最最末端考虑,逢0变1结束,逢1变0看前位;
    有两种思路:
    一、采用多个数组,用反码数组,作比较,来改变补码数组的状态;
    二、一个数组时,采用冒泡排序思路,倒叙比较;
    代码如下:

    C语言实现思路一:
    for(int i=7;1>0;i--){
        if(arr2[i]==0){
            arr3[i]==1;
            break;
        }else{
             arr3[i]==1;
        }
    }
    
    C语言实现思路二:
                    arrays_length=7;
                    if(*(array + arrays_length)==0){
                        *(array + arrays_length)=1;
                    }
                    else if(*(array + arrays_length)==1){
                        for (int i = arrays_length; i >0 ; i--) {
                            if(array[i]==1&&array[i-1]==0){
                                *(array + i)=0;
                                *(array + i-1)=1;
                                break;
                            } else if(array[i]==1&&array[i-1]==1){
                                *(array + i)=0;
                                *(array + i-1)=0;
                            } else if(array[i]==0&&array[i-1]==1){
                                *(array + i)=0;
                                *(array + i-1)=0;
                            }else if(array[i]==0&&array[i-1]==0){
                                *(array + i)=0;
                                *(array + i-1)=1;
                                break;
                            }
                        }
                    }
    
    评论

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 修改了问题 11月2日
  • 创建了问题 11月2日

悬赏问题

  • ¥50 这Mac系统提示虚拟内存不足,怎么解决
  • ¥15 Rs232电路无法收发数据,求帮助
  • ¥15 百度cookie扫码登录器
  • ¥15 微机原理汇编语言debug调试实验
  • ¥23 matlab可以把相图转换为庞加莱映射吗
  • ¥20 有偿,学生成绩信息管理系统
  • ¥15 Arduino电机和openmv连接异常
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本