设计一个专用图灵机程序,实现将输入的二进制原码转换为对应的二进制补码,要求给出设计思路、指令集、验证结果。
不知道你这个问题是否已经解决, 如果还没有解决的话:示例1
输入
10
输出2
说明
十进制中10的32位二进制表示为0000 0000 0000 0000 0000 0000 0000 1010,其中有两个1。
示例2
输入-1 输出
32
说明负数使用补码表示 ,-1的32位二进制表示为1111 1111 1111 1111 1111 1111 1111 1111,其中32个1
解题思路:
在第一题最后,我们说过了计算如何计算二进制1的个数了这里就不再说了。
int NumberOf1(int n ) {
// write code here
int count = 0; //计数用的
while (n) {
n = n & (n - 1);
count++;
}
return count;
}