《N诺机试指南》负二进制转化习题
Posted whgy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《N诺机试指南》负二进制转化习题相关的知识,希望对你有一定的参考价值。
先看题目:
意思:将一个十进制数进行负二进制转化,将一个十进制数进行二进制转化大家都很清楚,取余再除2向下取整,接着反序输出
负二进制转化类似:1.对-2取余,再取绝对值
2.存入结果数组里
3.将数减去余数再除-2
4.反顺序打印出来
代码:
//负二进制转换 /* 道理与 十进制转二进制一样 注意:有多组输入 */ #include <stdio.h> #include <math.h> int main(){ int n; int result[105]; while(scanf("%d",&n) != EOF){ //存储负二进制字符串 int count = 0; // 数组下标 if(n == 0){ //任何情况都要考虑到,不能把0给忘记了 printf("0"); } while(n != 0){ int w = abs(n % -2); //c语言中abs()函数用于求整数的绝对值,需要math头文件 result[count++] = w ; n = (n - w) / (-2); //此处和转二进制不同要注意 } //反序输出 for (int i = count - 1; i >= 0; i--){ printf("%d",result[i]); } printf(" "); } return 0; }
以上是关于《N诺机试指南》负二进制转化习题的主要内容,如果未能解决你的问题,请参考以下文章