7.4原码反码补码,位运算符

原码反码补码:

 

原码的弊端:

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。“ 0 1 1 1 1 1 1 1 ”

利用原码对正数进行计算是不会有问题的。

但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。

 

反码出现的目的:
为了解决原码不能计算负数的问题而出现的。

反码的计算规则:

负数的反码在原码的基础上,符号位不变。数值取反,0变1,1变0。正数的反码不变。

反码的弊端:

负数运算的时候,如果结果不跨0,是没有任何问题的,但是如果结果跨0,跟实际结果会有1的偏差。

 

补码出现的目的:

为了解决负数计算时跨0的问题而出现的。

补码的计算规则:

正数的补码不变,负数的补码在反码的基础上+1。另外补码还能多记录一个特殊的值-128,该数据在1个字节下没有原码和反码

补码的注意点:

计算机中的存储和计算都是以补码的形式进行的。

 

1字节为8比特位  0000 0000

基本数据类型:

byte类型的10:      1个字节   0000 1010

short类型的10:     2个字节   0000 0000 0000 1010

int类型的10:            4个字节   0000 0000 0000 0000 0000 0000 0000 1010

long类型的10:      8个字节   0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1010

隐式转换即,向前补0

强制转换即,从前消0

 

位运算符:

&      逻辑与            0为false,1为true

|       逻辑或            0为false,1为true

<<    左移               向左移位,低位补0

>>    右移               向右移位,高位补0或1

>>>  无符号右移    向右移位,高位补0

 

 

判断和循环:

顺序结构、分支结构、循环结构

分支结构 if:

格式1:

     if(关系表达式){                       关系表达式若为boolean类型

         语句体;                                 可直接写数据名称。

}

 格式2:

    if(关系表达式){

          语句体1;

}else{

          语句体2;

}

格式3:

    if(关系表达式1){                  1假执行2

         语句体1;                           2假执行3

}else if(关系表达式2){              …………

         语句体2;

}

   …

  else{

        语句体n+1;

}

 

switch循环语句:

switch(表达式){                          格式说明:

          case值1;                             1、表达式:将要匹配的值)取值为byte、short、int、char. DK5以后可以是枚举,DK7以后可以是String。

            语句体1;                            2、case后面跟的是要和表达式进行比较的值(被匹配的值)

            break;                                3、break: 表示中断,结束的意思,用来结束switch语句

         case值2;                               4、default:表示所有情况都不匹配的时候,就执行该处的内容和if语句的else相似

            语句体2;                            5、case后面的值只能是字面量,不能是变量 

            break;                               6、case给出的值不允许重复

          …………

          default:

          语句体n+1;

          break;

 

1、default的位置和省略    :位置任意(默认末尾),可以省略但不建议
2、case穿透                     : break不能省略不能丢

3、switch新特性                
4、switch和if第三种格式各自的使用场景

 

化简式:

switch(表达式){

   case 值1 -> {                                             语句体为一行时,case后面的“{}”可以省略

      System. out . ptintln();

   }case 值2->{

      System. out. println();

   }

   ……

   default-> {

      System. out. println();

   }

}

练习:

 

posted @ 2023-07-04 22:24  suN(小硕)  阅读(173)  评论(0编辑  收藏  举报