输出二进制补码

输出二进制补码描述输入一个整型 int 的整数 输出它的 32 位二进制补码 输入一个整型整数 输出输出一行 即该整数的补码表示 样例输入 7 样例输出 000000000000 知点第一位为符号位 0 表示正数 1 表示负数 正数的原码 反码 补码相同 负数的反码为各位取反 补码为反码加一 2 原 0010 反 0010 补 0010 2 原 1010 反 1101 补 1110 另外 0 原码是 00000000 0 原码是

知点

另外

解题

代码

#include  
     #include  
     using namespace std; int ans[33], temp[33]; int main() { 
    memset(ans, 0, sizeof(ans)); memset(temp, 0, sizeof(temp)); int n; cin >> n; int flag = (n >= 0) ? 0 : 1;//正负 n = (n >= 0) ? n : -n; int size = 0; do { 
    temp[size++] = n % 2; n /= 2; } while (n != 0);//得到二进制 for (int i = 0; i < size; ++i) { 
   //复制到答案数组里 ans[31 - i] = temp[i]; } if (flag) { 
   //负数情况下 for (int i = 1; i < 32; ++i) { 
   //反码 ans[i] = (ans[i]) ? 0 : 1; } for (int i = 31; i > 0; --i) { 
   //补码 if (ans[i] == 1)ans[i] = 0; else { 
    ans[i] = 1; break; } } } ans[0] = flag;//符号位 for (int i = 0; i < 32; ++i) { 
    cout << ans[i]; } return 0; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176437.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:56
下一篇 2026年3月26日 下午9:56


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号