`

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

 
阅读更多

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;

}

分享到:
评论

相关推荐

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

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

    位运算的妙用

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

    C语言位运算+实例讲解

    C语言位运算 有6种: &, | , ^(亦或), <<(左移), >>(右移)。 注意:参与位运算的元素必须是int型或者char型,以补码形式出现。 按位与& &运算常应用于: 迅速清零 保留指定位 判断奇偶性 a & 1 = 1...

    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。 |...

    位运算常用操作总结

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

    实验一MATLAB环境的熟悉与基本运算.docx

    MATLAB 环境的熟悉与基本运算 MATLAB 环境的熟悉是 MATLAB programming 的基础,熟悉 MATLAB 环境可以帮助用户更好地学习和掌握 MATLAB 的各种功能。本实验的主要目的是熟悉 MATLAB 环境,掌握矩阵、变量、表达式的...

    位运算使用技巧

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

    Java 逻辑运算符中&&与&,||与|的区别

    主要介绍了Java中&&与&,||与|的区别的相关资料,需要的朋友可以参考下

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

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

    实用位运算规则

    ### 实用位运算规则 #### 一、位运算概述 位运算是计算机科学中的一个重要概念,在C语言等编程语言中尤为常见。它涉及到对数据在二进制位级别的操作,通过对单个比特位进行逻辑运算来实现高效的数据处理。本文将...

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

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

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

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

    第2章-JAVA语言基础.ppt

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

    C#枚举中的位运算

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

    ACM位运算技巧

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

    使用位运算计算LOG2

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

    位运算.pdf

    ### 位运算详解 #### 一、位运算基础 位运算是一种在计算机编程中非常重要的技术,它直接针对计算机内存中的二进制位进行操作。位运算广泛应用于各种编程领域,尤其是在系统级编程中,例如操作系统开发、网络编程...

Global site tag (gtag.js) - Google Analytics