首页 > 编程知识 正文

对负数采用有符号的二进制补码表示,为什么采用二进制补码表示负数

时间:2023-05-06 07:25:37 阅读:191344 作者:1302

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
负数部分 先取绝对值 然后减一 取余化为二进制 然后全部取反

#include<iostream>using namespace std;class Solution {public: int NumberOf1(int n) { char B[32]={'0'}; int b=1,a,c=0; if(n<0) b=-1; b>0?a=n:a=b*n-1; for(int i=31;i>=0;i--){ //化为2进制 B[i]=a%2+'0'; if(B[i]=='1') c++; a=a/2; } if(b<0) c=32-c; //取反 return c; }};

正常思路n&1 n<<左移就行了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。