java中的补码,

xiaoxiao2021-04-16  52

1.在计算机系统中,数值一律用二进制的补码来存储的。

2.二进制的最高位是符号位,0表示正数,1表示负数。

3.正数的值是其本身,负数的值是最高位(符号位)不变,其他的位逐位取反,再加1;

将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就OK

比如:-11100;---这个是真值,---我们是以8位的进行出来位数的

原码:就是转化正常二进制的数据,

1. 10011100  ---- (-10011100的原码)

2. 先得到绝对值的原码  ----00011100     

 取反+1  -------11100011+1——>11100100

对应我们使用---转换工具:比如:http://tool.oschina.net/hexconvert/

这些都是不考虑最高位的符号的,---所以我们也不要感到怀疑,(比如:127    -127怎么转换成二进制的时候,没有什么变化,只在最前面加的了一个负号(-))

下面是一些概念性的东西:

1. 原码、反码、补码:

(1)在Java中,所有数据的表示方式都是以补码形式来表示

(2)正数:原码、反码、补码相同

(3)负数:符号位为1,其余各位是对原码取反,然后整个数加1

(4)~按位取反(反码加1称为补码。)步骤就是先求出这个数(因为java存的数是补码)的原码,然后对原码取反得到X,这个X就是我们要求的那个数的补的

 

2,在switch语句中,一定要,在美国case选项中,写不break,不然很容易出现  “贯穿” 的现象发生,,就是case的每个语句都执行,

 

3.逻辑运算中的    与    或  非    这个3个区别

长路与 (&)    a&b    比如这个,这个表达式的左右两边都要进行判断,然后,再进行最终的判断,

短路与(&&)  a&&b 比如这个,在判断这个的时候,  只要有一个是false,后面的另外一个判断都可以不用判断了,直接就出结果

 

长路或运算(|):将二边 关系运算的结果都计算出来,再进行判断。

短路或运行(||) :当运算符号的左边的关系运算结果是true时,不在进行右边的关系就是那,直接的结果的结果就是true

非运算:!

 

 

4.static 静态变量  静态方法,

5.jdk8的lambda语法的

主要是为了区别,匿名内部类的问题,

这个是举例了,简单的例子。

new Runnable(){ @Override public void run() { System.out.println("run方法的实现方法"); } }.run(); Runnable r=()->{ System.out.println("run方法的实现方法"); }; r.run();

6.

// 大小写转换:ctrl+shift+u //ctrl+alt+u---显示数据结构

7.  java  jdk8的新特性;

  lambda表达式:

一:foreach循环:

Stream<People> stream = people.stream(); stream.forEach(people1 -> System.out.println(people1.toString()));

二:过滤器:filter的使用

stream.filter(people1 -> people1.getGender().equals(People.Sex.FEMALE)) .forEach(people2 -> System.out.println("----"+people2.toString()));

三:doublestream;

 

 

 

 

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-4818169.html

最新回复(0)