Welcome

首页 / 软件开发 / 数据结构与算法 / 华为上机练习题:按位取反操作

华为上机练习题:按位取反操作2015-09-16题目:

求指定位取反后的结果(用异或来进行指定位数的取反)

*   输入:0x1234 3

*   输出:0x123c

分析:从网上看到这道题发现蛮有意思的, 记得当时学C语言的时候就有过这种的操作,只不过时间久了就有些健忘, 经过努力追忆后终于想起些些, 现在做出如下总结:

*   AND--> & --> AND指令主要用于使操作数若干位不变, 而使某些位为"0"的场合

*   OR --> | --> OR 指令主要用于使操作数若干位不变, 而使某些位为"1"的场合

*   XOR--> ^ --> XOR指令主要用于使操作数若干位不变, 而使某些位"取反"的场合

看了上面的总结相信这类题再变化的操作大家也能应付的过来。

代码如下:

package com.wenj.test;/** * 在网上看到的题目: 求指定位取反后的结果(用异或来进行指定位数的取反) * 输入: 0x1234 3 * 输出:0x123c * AND--> & --> AND指令主要用于使操作数若干位不变, 而使某些位为"0"的场合 * OR --> | --> OR 指令主要用于使操作数若干位不变, 而使某些位为"1"的场合 * * XOR--> ^ --> XOR指令主要用于使操作数若干位不变, 而使某些位"取反"的场合 * @author wenj91-PC * */public class TestBitOperate {public static void main(String args[]){int intIn = 0x1234;int n = 3;TestBitOperate tb = new TestBitOperate();System.out.println("0x" + Integer.toString(tb.bitOperateByPos(intIn, n), 16));}public int bitOperateByPos(int intIn, int n){int intTemp = intIn;int i = 1;i<<=n;intTemp ^= i;return intTemp;}}
作者:csdn博客 zlw420123