码迷,mamicode.com
首页 > 其他好文 > 详细

华为上机练习题--按位取反操作

时间:2014-07-02 08:40:26      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:java   华为   算法   解决方案   

题目:

 求指定位取反后的结果(用异或来进行指定位数的取反)
 *   输入: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;
    }
}


华为上机练习题--按位取反操作,布布扣,bubuko.com

华为上机练习题--按位取反操作

标签:java   华为   算法   解决方案   

原文地址:http://blog.csdn.net/wenj91/article/details/36246123

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!