美文网首页
8_4位运算比较大小

8_4位运算比较大小

作者: X_Y | 来源:发表于2017-09-29 11:46 被阅读29次

对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。

给定两个整数a和b,请返回较大的数。

测试样例:
输入:1,2
返回:2

class Compare {
public:
    int flip(int n)
    {
        return n^1;
    }
    int sign(int n)
    {
        return flip((n>>31) & 1);
    }
    int getMax(int a, int b) {
        // write code here
        // 整数位1,负数为0
        int as = sign(a);
        int bs = sign(b);
        int cs = sign(a-b);
        int diff_ab = as^bs; // 不同为1,相同为0
        int same_ab = flip(diff_ab); //相同为1,不同为0
        int returnA = diff_ab*as + same_ab*cs;
        int returnB = flip(returnA);
        return a*returnA + b*returnB;
    }
};

相关文章

  • 8_4位运算比较大小

    对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。 给...

  • 运算符的优先级

    官方手册 一、运算符的优先级 递增/递减>!>算数运算符>大小比较>(不)相等比较>引用>位运算符(^ > | >...

  • 运算符的优先级

    PHP算数运算符的优先级: 递增/递减> ! > 算数运算符 > 大小比较 > (不)相等比较 > 引用 > 位运...

  • 位运算比较

    对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。给定...

  • MySQL运算符

    算数运算符,比较运算符,逻辑运算符,位运算符 算数运算符: + - * / % 比较运算符: =, <>, !=...

  • MySQL 中的运算符和常用函数

    MySQL学习笔记(3) 运算符 类型:算术、比较、逻辑和位运算符 算术运算符 比较运算符 比较运算符可比较数字、...

  • 运算 & 运算符

    运算 & 运算符 算术运算 比较运算 比较运算的结果为bool值 赋值运算 逻辑运算 位运算 二进制的运算 身份检...

  • 3. 2019-02-14 运算与决策

    Part 1 运算 1. 算术运算符 +-*/ %%求余 %/%求商 ^指数 2. 关系运算符 大小关系比较,结果...

  • iOS NSDecimalNumber

    基本运算 设置小数点后保留位数 比较大小

  • 黑猴子的家:Python 数据运算

    1、算术运算 2、比较运算 3、赋值运算 4、逻辑运算 5、成员运算 6、身份运算 7、位运算 code 8、运算...

网友评论

      本文标题:8_4位运算比较大小

      本文链接:https://www.haomeiwen.com/subject/rhhiextx.html