C++求2进制01不同的位数

#include <iostream>
using namespace std;
int Grial(int x,int y)
{
	int count  = 0;
	while(x!=0 || y!=0)
	{
		if( ((x&0x1) ^ (y&0x1)) )
		count++;
		x>>=1;
		y>>=1;
	}
	return count;
}
int main()
{
	cout<<Grial(2,15)<<endl;
	return 0;
}

时间: 2024-08-10 00:05:24

C++求2进制01不同的位数的相关文章

PAT 1015 Reversible Primes[求d进制下的逆][简单]

1015 Reversible Primes (20)(20 分)提问 A reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime. Now

求计算机进制一题

In which system(进制), expression 13*16 = 244 is true ? 析:思路是把运算中的每个数都转成10进制形式.设当前系统是X进制 13由X进制转成10进制为: 13 = 1 * X ^ 1 + 3 * X ^ 016由X进制转成10进制为:16 = 1 * X ^ 1 + 6 * X ^ 0244由X进制转成10进制为:244 = 2 * X ^ 2 + 4 * X ^ 1 + 4 * X ^ 0 这样方程联立,得出一个一元二次方程.(X + 3) *

【算法题5】求不同进制表示的位数之和的均值

尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏.她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7.11(B),用八进制表示为三位数1.7.3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,. 小B感兴趣的是,一个数A如果按2到A-1进制表达时,各个位数之和的均值是多少?她希望你能帮她解决这个问题? 所有的计算均基于十进

[算法]求满足要求的进制(辗转相除(欧几里得算法),求最大公约数gcd)

题目 3在十进制下满足若各位和能被3整除,则该数能被3整除. 5在十六进制下也满足此规律. 给定数字k,求多少进制(1e18进制范围内)下能满足此规律,找出一个即可,无则输出-1. 题解 写写画画能找到规律,即是求与k互质的数x,x进制下即能满足上述规律. 相关 求最大公约数:辗转相除法(又叫欧几里得算法) 欧几里德定理:gcd(a, b) = gcd(b , a mod b) ,对于正整数a.b. 其中a.b大小无所谓.当a值小于b值时,算法的下一次递归调用就能够将a和b的值交换过来. 代码

C#实现10进制转2进制

这几天在复习计算机原理,看到二进制忽然想到二进制转10进制的公式,然后转念一想10进制转二进制的公式好像没印象,那索性自己写出来. 结果学渣的我发现,并不能写出来!什么数列,对数,xx函数忘得一干二净,而且需要有需要判断的地方,于是崩溃了,以前代数题并没写过条件啊~ 索性用C#代码搞出来(虽然在C#里有方法直接转换) 二进制值 10进制值 公式 0 0  0 1 1 1  10 2 f(2)=10^1 =10 11 3 f(3):比 log?3最小的整数位1,记录10^1,并3-(2^1)=1,

任意进制转换简单理解

规则1:任意进制转10进制都是当前位数乘以当前位权重 规则2:N进制转M进制根据前值除/M的值,然后取M进制余数为当前位,小数位就是后乘取整;(基本就是这个思想) 首先,实现任意进制转其他进制,最好先转到10进制在操作比较方便; 目前代码只实现10->36 思想是一样的使用递归计算- -改变除数(/N)和求的余数(/M),然后根据逻辑值对应字符表示就是- -,楼主目前不知道Z以上怎么表示- -所以懵 1 #include <iostream> 2 3 4 void turnto36(in

算法训练 进制转换

问题描述  我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2*101+3*100这样的形式. 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式.一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数.如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1.例如,当R=7时,所

【ACM】大数据+任意进制转换 jobdu 1080

[九度OJ] 1080 进制转换 题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36).下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出. 输出: 输出X的N进制表示的数. 样例输入: 16 10 F 样例输出: 15 提示: 输入时字母部分为大写,输出时为小写,并且有大数据. 这题考察的比较综合,进制转换+大数据 很久没有做ACM的题目了,且拿这个练练手,大整数模板是用的王道论坛的模板-贴出来备

一、基础部分-1.进制转换

一.计算机为啥使用二进制? 参考:https://www.zhihu.com/question/20830886 (简单易懂) 二.Python进制转换 1. 进制表示 2进制 01 8进制 01234567 10进制 0123456789 16进制 0123456789ABCDEF 2. 二进制转换函数 2进制-->10进制: #使用int函数 >>> int("11111111",2) 255 2进制-->8进制: #使用oct函数 >>&