激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java基于移位操作實現二進制處理的方法示例

java基于移位操作實現二進制處理的方法示例

2020-08-05 11:28zhuyangxing Java教程

這篇文章主要介紹了java基于移位操作實現二進制處理的方法,結合實例形式分析了java針對二進制的移位操作處理技巧,需要的朋友可以參考下

本文實例講述了java基于移位操作實現二進制處理的方法。分享給大家供大家參考,具體如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * @author openks
 * @since 2013-9-21 移位操作實例
 */
public class TestDisplacement {
  /**
   * @param args
   */
  public static void main(String[] args) {
    // 十進制數字2向左移3位 即 二進制的10向左移3位即10000 轉換為十進制為2的4次方 即16
    System.out.println("2向左移三位:" + (2 << 3));
    System.out.println("7向左移一位:" + (7 << 1));
    System.out.println("7向右移一位:" + (7 >> 1));
    int n = 3;
    System.out.println("2的" + n + "次方:" + (int) Math.pow(2, n));
    System.out.println("1向左移" + n + "位:" + (1 << n));
    System.out.println("可見2的N次方和1左移N位的值相等。。");
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
 * @author openks
 * @since 2013-9-21
 * 二進制十進制的處理 可用于權限控制 可最多管理32項權限
 */
public class TestBinary {
  /**
   * 獲取十進制數字k轉換為二進制后第index位的值
   * @param k 十進制數字
   * @param index 第index位 (從1開始)
   * @return 十進制數字轉換為二進制后第index位的值
   */
  public static int getValue(Integer k,int index){
    String string = Integer.toBinaryString(k);
    int len = string.length();
    System.out.println("二進制串為:"+string+"\n共有"+len+"位");
    if(index>len){
      return 0;
    }else{
      return string.charAt(len-index)-'0';
    }
  }
  /**
   * 設置十進制數字k轉換為二進制后第index位的值并返回處理后的十進制數字
   * @param k 十進制數字k
   * @param index 第index位 (從1開始)
   * @param m 該index位上的值 只有0,1兩種選擇
   * @return 處理后的十進制數字
   */
  public static int setValue(Integer k,int index,Integer m){
    //相當于2的index-1次方
    Integer t = 1<<(index-1);
    if(t>k){
      if(m==1){
        return t+k;
      }else{
        return k;
      }
    }else{
      int m1 = getValue(k,index);
      if(m1==0){
        return k+t;
      }else{
        return k-t;
      }
    }
  }
  /**
   * @param args
   */
  public static void main(String[] args) {
    int a=25;//原來權限值
    int i=2;//要查看的位數
    int d = 2;//要修改的位數
    a= setValue(a, d, 1);//修改第d位的值為1
    System.out.println("第"+i+"位的值為:"+getValue(a,i));
  }
}

希望本文所述對大家java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 视频一区免费观看 | 欧美日韩免费在线观看视频 | 成人做爰s片免费看网站 | 国产一级二级在线播放 | 日本中文一级片 | 宅男噜噜噜66国产免费观看 | caoporn国产一区二区 | 精品99在线视频 | 欧美一级棒 | 99影视在线视频免费观看 | 亚洲91网站 | 免费午夜视频在线观看 | 九九视频久久 | 精品国产乱码久久久久久久久 | 国产91中文字幕 | 黄色一级片在线免费观看 | 久久久国产精品网站 | 亚洲一区二区免费 | www国产网站 | 肉文女配h | av日韩在线免费观看 | 亚洲婷婷日日综合婷婷噜噜噜 | 国产精品久久av | 国产精品久久久久久久久久尿 | 久久人人97超碰国产公开结果 | 99最新地址 | 亚洲福利视 | 自拍亚洲伦理 | 亚洲va国产va | 国产免费一区二区三区在线能观看 | 国产一区二区精彩视频 | 精品国产91久久久久久久妲己 | 亚洲精品在线观看网站 | 国产自在线 | 久草最新 | 99最新地址 | 精品人人人人 | 色欲香天天天综合网站 | 七首小情歌泰剧在线播放 | 黄色一级视频 | 在线日韩亚洲 |