位运算和进制转换,反码补码
生活随笔
收集整理的這篇文章主要介紹了
位运算和进制转换,反码补码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
進制轉換
package junit;public class Test {public static void main(String[] args) { // int a=Integer.MIN_VALUE;int b=Integer.MAX_VALUE;int c=Integer.MIN_VALUE;System.out.println(b);System.out.println(c);print(b);// 最高位表示 符號位 最高位0 表示正數 最高位為1 表示負數 java中整型的最大值為 2的31次方減1 第32位表示數的正負 0-31位表示數的值print(c);//~ 運算符 取反print(~c);print(-5);// 11111111111111111111111111111011 /* * 第32位表示符號位 * 0~31位表示 值 * 將0~31的值 取反之后 加一 最終的值為 十進制 * 1 1111111111111111111111111111011 * ~取反 * 1 0000000000000000000000000000100 * +1 * 1 0000000000000000000000000000101 表示十進制的5 * 2的1次方 加 2的0次方 加 2的1次方 =2+1+2 =5 * *///無符號數值的范圍為 0~2的32次方減1 有符號數值的范圍為 -2的31次方~2的31次方減1 // print(a);int a=3;print(a);print(a<<1);//左移1位print(a<<2);//左移2位/** 運算符或 |* 1 | 0 1* 1 | 1 1* 0 | 0 0* 0 | 1 1* 有1則1* */print(11);print(22);print(11|22);/** 運算符 異或 ^* 1 ^ 0 1* 1 ^ 1 0* 0 ^ 0 0* 0 ^ 1 1* 相同為0* 相異為1** */print(11);print(22);print(11^22);/** 運算符 且 &* 1 & 0 0* 1 & 1 1* 0 & 0 0* 0 & 1 0* 相同為0* 相異為1* 兩個為1 則1 其余為0* */print(11);print(22);print(11&22);/* * * << 帶符號右移 * <<< 不帶符號右移 * * * */ print(Integer.MIN_VALUE); print(Integer.MIN_VALUE>>>1); print(Integer.MIN_VALUE>>1); /* * 相反數 * * * */ int zz=5; int zzz=-zz; int z=(~zz+1); print(zz); print(zzz); print(z);System.out.println(zz);System.out.println(zzz);System.out.println(z);print(Integer.MIN_VALUE);print(~Integer.MIN_VALUE);print(~Integer.MIN_VALUE+1);System.out.println("--------");System.out.println(Integer.MIN_VALUE);System.out.println(~Integer.MIN_VALUE);System.out.println(-Integer.MIN_VALUE);System.out.println(~Integer.MIN_VALUE+1);//選擇排序 冒泡排序 插入排序}/*** 將十進制的數 輸出為 二進制的數* @param num*/public static void print(int num){for (int i=31;i>=0;i--){System.out.print((num&(1<<i))==0?"0":"1");//左移<<// 1左移31位后 為10000000000000000000000000000000 1個1 31個0// &運算 /* 1&0 為 01&1 為 10&0 為 00&1 為0 */}System.out.println();} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的位运算和进制转换,反码补码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五用英语怎么说 五的英语是什么
- 下一篇: java压缩视频