sxt6.26

来源:互联网 发布:天刀神威捏脸数据 编辑:程序博客网 时间:2024/05/29 04:34
一、进制转换:
1、十进制:
逢十进一、0-9

2、二进制:
逢二进一、0-1、转十进制方法“8421”
计算机中普遍使用二进制
例:1000101
64 32 16 8 4 2 1(去凋零,一对应的数值相加)=69

3、八进制:
逢八进一,0-7
转二进制‘---·---·---’
例:0562
000-101-110-010
二进制转八进制,三位转化成1位8进制
例:(0)10-011-101-100
2354

4、十六进制:
逢十六进一、0-9&a-f     a(10)b(11)c(12)d(13)e(14)f(15)
转二进制:‘----·----·----’
例如:dc8
13 12 8
1101-1100-1000
二进制转十六进制:
例:1-0111-1010-0010
        1    7       a        2

*十进制转m进制:
整除m,取余数
*m进制转十进制:
m^(n-1)+m^(n-2)+m^(n-3)……m^0        n代表位数

二、位运算:

1、按位与:&

      都是1才为1

例:clsaa  Demo1{

     public static void main(String[] args){

     int a=12;

     int b=4;

     int c=a&b;

//a=1100;

//b=0100;

System.out.println(c);

}

}

输出c=4(0100)


2、按位或:|

      只要有1就是1

例:class Demo2{

public static void main(String[] args){

int a=8;

int b=6;

int c=a|b;

//a=1000;

//b=0110;

//c=1110;

System.out.println(c);

}

}

输出c=14(1110)


3、异或:^

不同为1、用于加密解密

*一个数和另一个数异或两次等于它本身

(1)一个数和它本身亦或=0;

(2)一个数和0亦或=他本身

例:a和b数值交换

class Demo{

public static void main(String[] args){

int a=10;

int b=6;

a=a^b;    //a=a^b=10^6;

b=a^b;    //b=a^b=10^6^6=10;

a=a^b;    //a=a^b=10^6^10=6;

System.out.println(a);

System.out.println(b);

}

}

输出a=6;b=10;

     

4、右移:>>

m>>2     右移几位就除以2的多少次方

右移时余数为正数

正数右移:补0,最小值0;

负数右移:补1,最小值-1;


5、左移:<<

m<<2       左移几位就乘以2的多少次方

右移时余数为正数


6、无符号右移:>>>

最高位都补0


7、按位取反:~
     0变1,1变0
例:class Demo3{
public static void main(String[] args){
int a=10;
int c=~a;
//负数的二进制等于正数的二进制取反+1     ***
//-10=~a+1
//-10=c+1
//c=-11
System.out,println(c)
}
}
输出c=-11


*例:class BitDemo5{
 public static void main(String[] args){
  // 第一个局部变量是args
  //show();
  int i=0;
  i=i++;
  System.out.println(i);
  //iconst_0  将0放到栈顶
  //istore_1 将int值存到第二个局部变量中 i=0;
  // iload_1 将第二个局部变量的值放到栈顶 0
  // iinc i=1;
  //istore_1 将栈顶的元素给第二个局部变量i=0;
}
}
输出:i=0

*例:class BitDemo7{
 public static void main(String[] args){
  int i=0;
  int c=i++;
  System.out.println(i);
  System.out.println(c);
  // 将0放到栈顶
  // istore_1 将栈顶的元素赋值给第二个局部变量 i=0;
  // iload_1 将第二个局部变量的值放到栈顶    0
  // iinc  1,1 i=1;
  // istore_2 将栈顶的元素赋值给第三个局部变量c=0;
  // System.out.println(iload_1); i=1;
  // iload_1 第二个局部变量
  //System.out.println(iload_2);
  // iload_2
}   
 }
输出:i=1     ;c= 0

例:class Demo8{
public static void show(){
  int i=0;
  int c=i++;
  System.out.println(i);
  System.out,.println(c);
  // iconst_0  将常量0放到栈顶
  // istore_0   将0给i赋值。
  // iload_0 将i的值放到栈顶,现在栈顶是0
  // iinc   i=0+1=1;
  //  istore_1 将栈顶的给第二个局部变量 c=0;
  // iload_0  第一个局部变量,指的是i
  // c是0,i=1
}
}
输出:i=1;c=0;

例:class Demo9{
public static void show(){
   int i=0;
   i=i++;
   System.out.println(i);
  //iconst_0 将常量0放到栈顶 0
  //iconst_0 将栈顶的值赋值给第一个变量 i=0;
  // iload_0  将第一个局部变量的值放到栈顶  0
  // iinc  i=0+1;i=1;
  // iinc  i=0+1;i=1;
  // iconst_0  将栈顶的元素给第一个局部变量i=0;
 }
}
输出:i=0


















原创粉丝点击