`

[随时更新] & | ~ ^ 位运算的蛋疼妙用

 
阅读更多

1. 交换两个数但不能使用临时变量

// method 1

void swap (int* a, int* b) {

    *a ^= *b; *b ^= *a; *a ^= *b;

}

 

// method 2

void swap (int* a, int* b) { // 乘号改成加号时,除号改成减号。

          // 当 *a 和 *b 都很大时,第一句可能会溢出。

    *a *= *b; *b = *a / *b; *a /= *b;

}

 

2. 求两个数中较大的一个但不能使用比较语句

 

int max (int a, int b) { // a 与 b 的符号必须相同

    return a ^ b | a;

}

分享到:
评论

相关推荐

    C程序员多功能位计算器

    1、支持常量 PI E,需带括号,如(PI) 2、支持十进制数,如16 3、支持十六进制数,如0x0F 4、支持二进制数,0b11111111 5、支持多括号,如3+(1+2)*(2+3) ...12、支持- + % & | ^ * / 二元运算,如 b+=3 ,但不支持++ --

    分享一个好用的程序员计算器(公式、变量、计算过程、位键盘++)!!!

    写程序,特别是单片机里位运算,每次都不知道程序运行会计算出什么结果,一直都没有找到好用的计算器。终于自己写了一个,支持公式、计算过程显示,二进制、十进制、十六制同时显示,位键盘等,需要的同学拿去用。 1...

    c#中(&&,||)与(&,|)的区别详解

    (&,|)位运算符的运算对象是位,也就是1/0。叫做位运算符,理解:0为false,1为true。运算结果只有四种情况: * 1 & 1 = 1 * 1 & 0 = 0 * 0 & 1 = 0 * 0 & 0 = 0 * 1 | 1 = 1 * 1 | 0 = 1 * 0 | 1 = 1 * 0 | 0 = 0 ...

    位运算的妙用

    位运算在计算机科学中扮演着重要的角色,尤其是在底层数据处理和优化算法中。位运算符包括与(&), 或(|), 异或(^), 取反(~), 左移()和右移(>>)。这些操作符直接作用于二进制数的每一位,由于它们直接在硬件级别执行,...

    labview中的公式与函数

    这些运算符不仅支持基本的数学运算,还支持逻辑和按位运算,使得公式节点和表达式节点能够处理复杂的数学问题和逻辑判断。 #### 三、使用示例 假设我们需要在一个项目中计算一个三角形的面积,给定两个边a和b,...

    python中逻辑与或(and、or)和按位与或异或(&、|、^)区别

    按位与或(&、|、^):按照二进制进行逻辑运算 例如:数字换成二进制,各自位上的0/1进行逻辑运算,得到的结果转换为数字 3 & 2 =0111 & 0010 =0010 =2 二进制逻辑运算规则: &:0&0=0; 0&1=0; 1&0=0; 1&1=1。 |...

    位运算常用操作总结

    ### 位运算常用操作总结 位运算是一种对二进制数据进行操作的高效方式,在计算机科学领域具有广泛的应用。本文将详细介绍位运算的各种常用操作及其应用场景,并通过具体例子加深理解。 #### 一、位运算基本概念 ...

    JAVA中的 =、&=、^=1

    2. **按位或运算符 `|` 和复合赋值运算符 `|=`**: `|` 操作符对两个二进制数的每一位执行逻辑或运算。如果两个位都是0,结果是0;如果至少有一个位是1,结果是1。`|=` 运算符则相当于 `a = a | b`,将a与b进行按位或...

    C#位运算及运算符

    在C#中,位运算符有六种:位逻辑非运算、位逻辑与运算、位逻辑或运算、位逻辑异或运算、位左移运算和位右移运算。 1. 位逻辑非运算 位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行...

    位运算使用技巧

    ### 位运算使用技巧 #### 一、位运算概述 位运算是一种直接对整数在内存中的二进制表示进行操作的方法。计算机内部所有的数据都以二进制形式存储,因此位运算能够直接作用于这些数据,从而实现快速高效的处理。 #...

    位运算练习题_参考答案.pdf

    本文档提供了一系列位运算练习题的参考答案,涵盖了位运算的基本概念、运算符优先级、位运算符的使用、掩码的应用、移位运算等知识点。 1. 位运算符优先级 在 C 语言中,位运算符的优先级从高到低依次是:sizeof, ...

    浅谈JS运算符&&和|| 及其优先级|angluo-javascript-159717.pdf

    如果需要改变默认的运算顺序,可以通过使用圆括号()来指定。圆括号内的表达式总是会优先计算。 JS运算符优先级的顺序大致如下(从高到低): 1. 圆括号内的表达式 2. 字段访问、数组下标、函数调用以及表达式分组 ...

    位运算.pdf 精心收集的资料,重新编辑

    位运算在编程中是一种高效的运算方式,特别是在处理底层数据和优化算法时,具有重要的作用。本文将详细解析位运算的概念、运算符、应用以及注意事项。 首先,位运算是基于二进制位的操作,它直接对数据的二进制表示...

    Matlab中的逻辑运算&&与&与的区别_matlab运算实例源码.doc

    Matlab 中的逻辑运算符 &&、&、|| 和 | 是用于逻辑判断和运算的符号,它们之间存在一些重要的区别。 首先,& 和 | 是逻辑运算符,它们可以比较两个标量或两个同阶矩阵。如果 A 和 B 都是 0-1 矩阵,则 A&B 或 A|B ...

    第2章-JAVA语言基础.ppt

    JAVA语言基础是Java编程语言的基础知识,包括变量、数据类型、运算符、表达式、赋值语句、强制类型转换、逻辑运算符、位运算符、三目条件运算符、复杂赋值运算符等。 变量和数据类型 在JAVA语言中,变量是存储数据...

    Java语言中&&与& ||与|的区别是什么

    然而,当两边的变量是`int`或其他整数类型时,`&`将执行按位与操作,对每个二进制位进行与运算。 - `|`:按位或运算符。对于`boolean`变量,它表示逻辑或,不支持短路逻辑。对于整数类型变量,它执行按位或操作,对...

    C#枚举中的位运算

    在C#中,我们可以用`[Flags]`特性来标记一个枚举,表明它支持位运算。下面是一个权限管理的枚举示例: ```csharp [Flags] public enum Permissions { Insert = 1, Delete = 2, Update = 4, Query = 8 } ``` ...

    ACM位运算技巧

    位运算是一种在计算机科学中广泛使用的操作,它直接对整数的二进制位进行处理。位运算具有速度快、节省空间的特点,在算法设计、数据结构优化以及编程竞赛中尤为重要。本篇文章将深入探讨位运算中的各种技巧及其应用...

    使用位运算计算LOG2

    使用位运算计算LOG2 LOG2是数学中一个常用的函数,用于计算一个数字的对数。然而,在计算机科学中,我们更关心的是如何使用位运算来计算LOG2。位运算是一种快速且高效的运算方法,可以用于加速很多复杂的操作。下面...

Global site tag (gtag.js) - Google Analytics