美文网首页
神奇的位运算

神奇的位运算

作者: 王沐凡 | 来源:发表于2021-06-17 17:15 被阅读0次

一. 英文字母大小写转换

  1. 利用或操作 | 和空格将英文字符转换为小写。
    ('a' | ' ') = 'a'
    ('A' | ' ') = 'a'

  2. 利用与操作 & 和下划线将英文字符转换为大写。
    ('b' & '') = 'B'
    ('B' & '
    ') = 'B'

  3. 利用异或操作 ^ 和空格进行英文字符大小写互换。
    ('d' ^ ' ') = 'D'
    ('D' ^ ' ') = 'd'

二. 异或交换两个数
int a = 1, b = 2;
a ^= b;
b ^= a;
a ^= b;
此时a = 2,b=1

三. 判断奇偶数
只要根据数的最后一位是 0 还是 1 来决定即可,为 0 就是偶数,为 1 就是奇数
if(0 == (a & 1)) {
//偶数
}

四. 符号交换
交换符号将正数变成负数,负数变成正数
int reversal(int a) {
return ~a + 1;
}
整数取反加1,正好变成其对应的负数(补码表示);负数取反加一,则变为其原码,即正数

五. 求绝对值
整数的绝对值是其本身,负数的绝对值正好可以对其进行取反加一求得,即我们首先判断其符号位(整数右移 31 位得到 ),然后根据符号进行相应的操作int。
int abs(int a) {
int i = a >> 31;
return i == 0 ? a : (~a + 1);
}

相关文章

  • 神奇的位运算

    一. 英文字母大小写转换 利用或操作 | 和空格将英文字符转换为小写。('a' | ' ') = 'a'('A' ...

  • 神奇的位运算

    位运算是什么 二进制是计算技术中广泛采用的一种数制。二进制数据是用 0 和 1 两个数码来表示的数。程序中的所有数...

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • Java--位运算符

      位运算指的是进行二进制位的运算,常用的位运算符如下所示。 位运算符   说明~       取反&     ...

  • 位运算及用位运算实现权限控制

    请自行补习位运算相关知识 位运算 位运算示例 权限控制

  • 位运算

    位运算的运算分量只能是整型数据,位运算把运算对象看作是由二进制位组成的位串,逐位完成指定的运算,得到一个新的位串。...

  • 2019-03-19 计算机二级C语言程序设计之位运算

    位运算符的运算功能 按位取反 运算符~是位运算中唯一的一个单目运算符,运算对象置于运算符的右边,其运算功能是把运算...

网友评论

      本文标题:神奇的位运算

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