算法-汉明距离

题目描述

两个整数之间的汉明距离是指,相应二进制位不同的位置的数目。
给你两个整数x和y,计算他们之间的汉明距离。
其中,0 ≤ x, y < 2^31.

样例

  输入:
  x = 1, y = 4

  输出:
  2
  样例解释
  x = 1 ==> 0 0 0 1
  y = 4 ==> 0 1 0 0
  —————-↑—-↑
  两个数位的二进制不同,所以答案为2.

思路:
* 逐位比较即对2取余,得出最后一位然后比较。
* 再向右移一位 。

    public static void main(String[] args) {
        int hanmingDistance = getHanmingDistance(1, 4);
        System.out.println(hanmingDistance);
    }

    private static int getHanmingDistance(long x, long y) {
        int distance = 0;
        while (x != 0 || y != 0) {

            if (x % 2 != y % 2) {
                distance++;
            }
            x = x >> 1;
            y = y >> 1;
        }
        return distance;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 定点小数运算 来自:http://www.eepw.com.cn/article/17893.htm 在DSP世界...
    郝宇峰阅读 9,345评论 0 2
  • 生活大爆炸版石头剪刀布 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,...
    bbqub阅读 485评论 0 0
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,926评论 1 10
  • 燃烧英语: Morning reading:When you have talked yourself into ...
    糖月阳阅读 156评论 0 0
  • 1.新作 月亮拉着太阳的手 假惺惺的劝慰 然后 恶狠狠地把太阳摔倒了地上 是的 有你这样的人 冰冷的像这种月光 再...
    陈恕之阅读 360评论 0 0