首页 > 编程语言 >Java基础-学习笔记04

Java基础-学习笔记04

时间:2024-07-16 20:07:17浏览次数:10  
标签:11111111 Java 04 00000000 补码 笔记 反码 true 原码

04 运算符 进制

1. 运算符

逻辑与 & 和 短路与 &&

共同点:两个条件都为true时,结果为true,否则为false。
& 逻辑与:不管第一个条件是否为false,第二个条件都要判断;
&& 短路与:如果第一个条件判断为false,则第二个条件不会判断。

逻辑或 | 和 短路或 ||

共同点:两个条件只要有一个成立,结果为true,否则为false。
| 逻辑或:不管第一个条件是否为true,第二个条件都要判断;
|| 短路或:如果第一个条件为true,则第二个条件不会判断。

逻辑异或 ^

当两个条件的结果相同时,结果为true,否则为false。

赋值运算符

符合赋值符合赋值运算符会进行类型转换

byte b = 3;
b += 2; //b = b + 2;
b++; //b = (byte)(b+1);

2. 原码、反码、补码

二进制:0b或0B开头
十进制:(非0开头)
八进制:0开头
十六进制:0x或0X开头

  • 二进制转成八进制
    从低位开始,每三位一组,转成对应的八进制数即可;
  • 二进制转十六进制
    从低位开始,每四位一组,转成对应的十六进制数即可;
  • 八进制转换为二进制
    将八进制数每一位,转成对应的三位二进制数即可;

ob11010101 => 0325
ob11010101 => 0xD5

System.out.println(~-2);

分析:

  1. -2是int型,4个字节,得到-2的原码是 10000000 00000000 00000000 00000010
  2. -2的反码是 11111111 11111111 11111111 11111101
  3. -2的补码是 11111111 11111111 11111111 11111110
  4. 按位取反是 00000000 00000000 00000000 00000001
    这是运算后的补码,由于其符号位是0表示正数,所以其对应的原码相同,即,最后结果为 1
System.out.println(~2);

分析:

  1. 2的原码、反码、补码都是 00000000 00000000 00000000 00000010
  2. 按位取反 11111111 11111111 11111111 11111101
    得到的是结果的补码,需把其对应原码找到
  3. 结果的反码是 11111111 11111111 11111111 11111100
  4. 原码是 10000000 00000000 00000000 00000011
    结果是 -3
  1. 二进制的最高位是符号位:0表示正数,1表示复数

  2. 正数的原码、反码、补码都一样

  3. 负数的反码 = 它的原码符号位不变,其他位取反

  4. 负数的补码 = 它的反码 + 1, 负数的反码 = 它的补码 - 1

  5. 0的反码、补码都是0

  6. Java中的数都是由符号的

  7. 计算机运算时,都是以补码的方式来运算的

  8. 当我们看运算结果的时候,要看它的原码

  9. 位运算符

<< >>>
低位溢出,高位补0

System.out.println(1 >> 2); //00000001 => 00000000, 即0
System.out.println(4 << 3); //00000100 => 00100000, 即 4*2*2*2 = 32

标签:11111111,Java,04,00000000,补码,笔记,反码,true,原码
From: https://www.cnblogs.com/97gogo/p/18304679

相关文章

  • Java小常识
    publicstaticvoidmain(Stringarge[])ssaticpublicvoidmain(Stringargs[])都是有效的。Java的注解方式有///**  *//**/实例方法可以直接调用本类的类方法。面向对象程序的三个设计是封装,继承和多态Java语言的主要特点是简单,安全,面向对象,平台无关数组必须......
  • 暑假Java自学每日进度总结1
    今日所学:一.常用的cmd命令:1>盘符:2>dir(显示当前文件所有目录)3>cd目录(打开该目录)4>cd..(回到上一目录)5>cd(回到当前盘符初始态)6>cls(清屏)7>exit(退出cmd命令界面)8>cd目录1\目录2...(打开多级目录)二.创建用cmd打开软件的快捷方式:使用环境变量:1>电脑2>属性3>高......
  • 第八天笔记(项目测试工具悟道使用)
    禅道一、禅道的介绍(1)定义禅道是一个项目管理工具,也是一个bug管理工具,还是一个用例管理工具。(2)作用:为了解决众多企业在管理中出现混乱,无序的现象,开发出来(3)来源:禅道属易软天川公司(4)禅道是集于产品管理,项目管理,测试管理于一身,同时包含事务管理,组织管理8众多功能,是中小企业管理......
  • JavaSE的整体总结
    JavaSE(JavaStandardEdition)是Java编程语言的基础,广泛应用于各种开发场景。本文将详细介绍JavaSE的基本概念和核心功能,包括初识Java、数据类型和变量、运算符、程序逻辑控制、方法的使用、数组的定义与使用、类和对象、继承和多态、抽象类和接口、String类以及异常处理。1.......
  • 7/16 训练笔记
    闲话插,就硬插,插完就过了(P4781【模板】拉格朗日插值模板题,写拉格朗日插值即可。代码:#include<bits/stdc++.h>#defineintlonglong#definerep(i,l,r)for(inti=l;i<=r;i++)usingnamespacestd;constintmod=998244353;intx[2010],y[2010],n,k;int......
  • 揭秘 Java 变长参数:如何优雅地处理不定数量的字符串
    哈喽,大家好,我是木头左!理解变长参数:基础概念在Java中,变长参数也称为可变参数,它允许你传递任意数量的参数到一个方法中。这个特性是通过使用三个点符号...来实现的。当你在方法的参数列表中使用...时,任何传递给该方法的额外参数都会被当作数组来处理。这为提供了一种灵活的方式......
  • 低开开发笔记(八): 低代码编辑器实现撤销回退(命令模式,防抖处理)
    好家伙, 0.代码已开源https://github.com/Fattiger4399/ph_questionnaire-.git 1.事件触发我们先从事件的触发开始讲起大致上我们有两个思路可以选择1.监控用户行为2.监控数据变化 两种选择都会有较难处理的部分,这里我们先选第二个选项 关于监控数据,首......
  • JAVA初级之IO流(其他流)
    目录1、缓冲流/处理流1.1概述1.2字节缓冲流1.2.1构造方法1.2.2 测试  1.3字符缓冲流1.3.1构造方法1.3.2特有方法1.3.3代码演示 2、转换流2.1因为什么而提出的转换流?2.2 InputStreamReader类2.3 OutputStreamWriter类2.4转换图解3、对象流/序列......
  • 代码随想录算法训练营第十四天 | 226.翻转二叉树、101. 对称二叉树、 104.二叉树的最
    226.翻转二叉树题目:.-力扣(LeetCode)思路:前序遍历代码:classSolution{public:TreeNode*invertTree(TreeNode*root){if(root!=NULL){swap(root->left,root->right);invertTree(root->left);invertTree(root->right);}......
  • Java实现将json数据转换为sql insert语句
    Java实现将json数据转换为sqlinsert语句importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;importjava.util.Iterator;importjava.util.Map;publicclassJson......