6.短路或
|| 一个为真 ,全部为真 (区别在于只要第一个是个确定的, 第二个我可以不看)
代码展示:
import java.util.Scanner; public class one { public static void main(String []avgs) { // & 逻辑且 两边同时为真才为真 System.out.println(true&true); System.out.println(true&false); System.out.println(false&false); // | 逻辑或,两边同时为假 才为假 System.out.println(true|true); System.out.println(true|false); //为真 System.out.println(false|false); // ! 逻辑非 假的为真,真的为假. System.out.println(!true); System.out.println(!false); //^ 逻辑异或 相同为false 不相同为true (民政局) System.out.println(true^true); System.out.println(true^false); //为真 System.out.println(false^false); //===================================以上不管真假都运行 //短路逻辑符 // && 短路且 第一个不满足条件直接短路,也就是说第二个直接跳过 System.out.println(true&&true); System.out.println(true&&false); System.out.println(false&&false); System.out.println(false&&true); //|| 短路或 System.out.println(true||true); System.out.println(true||false); //为真 System.out.println(false||false); Scanner sc=new Scanner(System.in); int i,j; System.out.println("请您输入两个整数:"); i=sc.nextInt(); j=sc.nextInt(); if(i==6||j==6||i+j==6) { System.out.println(true); } else { System.out.println(false); } } }
效果展示:
(六)、原码、反码、补码(八位)
0 000000000(二进制)
1.原码:
定义 : 十进制的二进制表现形式,最左边是符号位,0为正,1为负
十进制:56 ---------------- 二进制: 00111000 (原码)【其中左边第一个0,是符号位。其余是数据】
十进制:-56-------------------二进制: 10111000 (原码)
55------------------------原码 : 00110111
-55-------------------------原码: 10110111;
1.1原码弊端:
主要作用是只能取正数,不能取负数.。如果进行负数运算,结果就出错。和我们预期的到结果是有区别的.
2.反码:
定义:正数的反码是其本身,负数的反码是符号位保持不变,其余位取反 。按位取反
-56----------反码为: 11000111 (表示)
都先取反码再运算
-56+1= 11001000 – ----- (-55的反码为) :11001000
2.2作用:
是为了解决源码不能计算负数的问题而出现的
2.3计算规则
正数的反码不变.负数的反码在源码的基础上,符号位不变,数值取反,0变1,1变0;
2.4反码弊端:
当反码到0的时候,0有两种形式.+0,-0;所以会误差1
3.补码:
定义: 目的是为了解决反码的误差决定的。正数的补码是其本身,负数的补码是再其反码的基础上+1;
(七)、隐形转换和强制转换原理
1个字节 占据 8个比特位 00000000
4个字节 占据32个比特位
1.隐式转换: (补齐比特位)
publci class one { public static void main() { bety a=10; //比特位 0000 1010 int b; b=a; // 0000 0000 0000 0000 0000 0000 0000 1010 } }
2.强制转换 : (删除比特位)
publci class one { public static void main() { int a=10; // 0000 0000 0000 0000 0000 0000 0000 1010 bety b; b=(byte)a; // ~~0000 0000 0000 0000 0000 0000~~ 0000 1010 } }
3. Java基本数据类型的取值范围:
4.Java的各个基本数据类型的比特位
(八)、其他逻辑运算符
1.逻辑且计算机运算视角
原理:两个为真就为1,否则为0;
publci class one { public static void main() { int a=10; // 0000 0000 0000 0000 0000 0000 0000 1010 int b=10; // 0000 0000 0000 0000 0000 0000 0000 1010 //———————————————————————————————————————————————————————— System.out.println(a&b); 1 0 1 0 //结果为 10 } }
2.逻辑或计算视角
原理: 一个为真就为1.否则为0
publci class one { public static void main() { int a=10; // 0000 0000 0000 0000 0000 0000 0000 1010 int b=10; // 0000 0000 0000 0000 0000 0000 0000 1010 //———————————————————————————————————————————————————————— System.out.println(a|b); 1 0 1 0 //结果为 10 } }
4.左移运算符(左移一位就是原数值*2)<<
原理: 高位(左)左移,低位补零
publci class one { public static void main() { int a=10; // 0000 0000 0000 0000 0000 0000 0000 1010 System.out.println(a<<2); //左移2位。~~00~~ 00 0000 0000 0000 0000 0000 0000 1010 00 也就是40 } }
3.右移运算符 (右移一位原数值除2)>>
原理:向右移动,高位补0或1 .符号位要与原数据(符号)保持一致,数据位补0
publci class one { public static void main() { int a=10; // 0000 0000 0000 0000 0000 0000 0000 1010 System.out.println(a>>2); //右移2位。 00 0000 0000 0000 0000 0000 0000 0000 10 ~~10~~ 也就是2 } }
5.无符号右移(>>>)
原理:向右移动,高位只补0.
基础篇第一节 已完毕!!!!!1