美文网首页奇妙的位运算
位运算之奇偶位的互换

位运算之奇偶位的互换

作者: 掌灬纹 | 来源:发表于2019-01-22 19:27 被阅读0次

题目:

输入任意十进制数,输出二进制表示形式,

并将奇数位与邻近偶数位互换并且输出十进制和二进制数。

样例:

输入:

10

输出:

1010

5

101

tip:

输入的十进制数对32位101010......做&运算得a,即可保留原偶数位,奇数位都为0

同理,原数对010101.....做&运算得b,即可保留原奇数位,偶数位都为0

a右移一位,b左移一位 在将两数做^运算即可得到所求

(Java代码如下)

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int a = sc.nextInt();

System.out.println(Integer.toString(a,2));

int b = m(a);

System.out.println(b);

System.out.println(Integer.toString(b,2));

}

public static int m(int i) {

int ou = i&0xaaaaaaaa;//101010....16进制表示(32位二进制太多简化为16进制)

int ji = i&0x55555555;//010101....

return (ou>>1)^(ji<<1);

}

相关文章

  • 位运算之奇偶位的互换

    题目: 输入任意十进制数,输出二进制表示形式, 并将奇数位与邻近偶数位互换并且输出十进制和二进制数。 样例: 输入...

  • 1.4 将整数的二进制奇偶位互换

    Chapter1: 位运算的奇技淫巧 4. 将整数的二进制奇偶位互换 问题 将整数的二进制奇偶位互换 算法 算法1...

  • LeetCode刷题笔记(九)位运算

    九. 位运算 位运算不需要转换成10进制, 因此处理速度非常快。实战常用位运算 x & 1 == 1 判断奇偶 (...

  • 标志寄存器

    zf 0标志位 上次运算为0 则为1 否则0 pf 奇偶标志位 上次运算为偶数 则为1 否则0 sf 符号...

  • 将整数的二进制奇偶位互换

    /*将一个整数的奇偶位互换例如输入整数9,二进制表示形式为1001互换后的结果为0110

  • 常用位运算

    位运算常见操作 判断奇偶 (x & 1) == 1 == x % 2 == 1判断奇数 (x & 1) == 0 ...

  • 位运算指南

    1、判断奇偶数普通方法: 实际上 n % 2 的形式,编译器也会自动帮我们优化成位运算所以可直接使用位运算 2、交...

  • 位运算

    实战位运算要点: 判断奇偶x % 2 == 1 → x & 1 == 1x % 2 == 0 → x & 0 =...

  • Java中使用位操作的几个小技巧

    一、判断整数的奇偶性 按照传统的思路,判断一个整数的奇偶性是通过用这个数与2求模,看运算结果是否为0。学了位运算符...

  • EFLAG 标志寄存器

    ZF 零标志位(Zero Flag) 判断结果是否为0。运算结果0,ZF置1,否则置0。 PF 奇偶标志位(Par...

网友评论

    本文标题:位运算之奇偶位的互换

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