&和&&

作者: _纪琛 | 来源:发表于2018-05-09 08:34 被阅读0次

    概念区分

    1. & 按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;

    2. && 逻辑与:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。

    例如:
    a&b 9&8
    1001
    1000
    结果是1000
    a&&b 9&&8 结果是1

    重点

    • & : 对每一个都判断;
    • && : 只要前面是false就输出false,而不继续判断后面了。

    详细解释

    & ,双目运算符:将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上。

    例:170&204
    对应二进制:
    10101010B &
    11001100B =
    10001000B
    所以 170&204=136

    如果两数位数不同,则较短数高位补零,再运算。

    例:char a=100; int b=260;
    a&b 即:
    0000 0000 0110 0100 &
    0000 0001 0000 0100 =
    结果为int型
    0000 0000 000 0100
    即4

    && ,双目运算符:计算两个表达式同时成立的“真值”(同时成立真值为真,否则为假)。逻辑真值有两种,1为真,0为假,但在运算时用非零表示真,0表示假
    即:
    数值->逻辑真值 —— 非0为真,0为假;
    逻辑真值->数值 —— 真为1,假为0。

    例:
    char a=1, b=0, c=-1;
    那么a真b假c真。a&&b和c&&b为假值为0,a&&c为真值为1。

    另外,|和||区别与此类似。

    相关文章

      网友评论

          本文标题:&和&&

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