在百度上有人问这样的问题 http://zhidao.baidu.com/question/195343603.html 这样的操作当然用位运算了,呵呵,写了两个方法如下: class MYfirst{ public static void main(String[] args){ System.out.println(do0(5,1));//把5(101)的第一位变为0 后变成4(100) System.out.println(do1(4,1));//把4(100)的第一位变为0 后变成5(101) } /** * * @param i 要操作的数 * @param pos 第几位 * @return 把 i 的第pos 位变为0后的值 */ public static int do0(int i,int pos){ int src= Integer.MAX_VALUE^(1<<(pos-1)); return i&src; } /** * * @param i要操作的数 * @param pos 第几位 * @return 把 i 的第pos 位变为1后的值 */ public static int do1(int i,int pos){ return i|(1<<pos-1); } }