java 计算反码_java基础知识-原码、反码、补码、运算符

一、原码、反码、补码

原码

一个数转化成二进制。

用最高位来表示正负,最高位为0表示正数,最高位为1表示负数。

例如:

short i=5;

因为在java里short占2个字节转化成二进制就是 00000000 00000101

所以 00000000 00000101就是5的原码

short i=-5;

因为负数的最高位是1

所以 10000000 000000101 就是-5的原码

反码

正数的反码不变,负数的反码就是在原码的基础上,符号位不变,其他位取反(0变1,1变0)。

5的反码: 00000000 00000101

-5的反码:11111111 11111010

补码

正数的补码还是不变,负数的补码就是在反码的基础上做+1运算

5的补码:00000000 00000101

-5的反码:11111111 11111011

总结:正数的反码、补码都不变。

负数的反码、最高位不变其余为取反。

负数的补码的反码的基础上加1。

0的原码和反码有两种形式但补码只有一只形式,0的原码有两种形式00000000 00000000 和10000000 00000000

对应的0的补码也有两种形式  00000000 00000000 和11111111 11111111

0的补码只有个一种              00000000 00000000

为何要要使用原码、反码和补码?

二、运算符

1、算数运算符

+,-,*,/(正斜杠),%(取模)

2、自加、自减运算符

++,--

++x 和 x++的区别?

inti,a,b;

a=5;

b=5;

i=++a;

System.out.println("i="+i);//结果 i=6

System.out.println("a="+a);//结果 a=6

i=b++;

System.out.println("i="+i);//结果 i=5

System.out.println("b="+b);//结果 b=6

++x先自己累加,在计算正个公式

x++计算整个公式,再计算自己

3、关系运算符

>,>=,

==,!=

注:一个等号叫做赋值,两个等号判断真或假

关系运算符的结果只有两个要么true,要么false

inta,b;

a=5;

b=5;booleanc;

c=a==b;

System.out.println(a

System.out.println(c);//结果:true

4、位运算符

位运算符把数值转换成二进制进行计算

例:int a=5;

int b=9;

因为它们是int型

所以在内存中占4个字节,共32位

5二进制:    00000000 00000000 00000101

9二进制:    00000000 00000000 00001001

5和9上下同位各自进行计算

&(与)运算符

上下只要有一位为0则结果为0

上下都是1时结果才为1

5&9 二进制结果:00000000 00000000 00000001 转成十进制结果:1

|(或)运算符

上下只要有一位为1则结果肯定为1

上下都是0结果才为0

5|9二进制结果:00000000 00000000 00001101 转成十进制结果:13

^ (异或)运算符

上下全是0,或者全是1,总之上下数字相同的话该结果为0

上下一个0一个1结果为 1

5^9 二进制结果:00000000 00000000 00001100 转成二进制:12

~ (非)运算符

~运算符是对单个数字的二进制取反

例如 ~9  二进制是:0110  转成二进制:

5、位逻辑运算符

&& 与

|| 或

! 非

6、位移运算符

<< 左移

>> 右移

7、赋值运算符

操作符描述例子

=

简单的赋值运算符,将右操作数的值赋给左侧操作数

C = A + B将把A + B得到的值赋给C

+ =

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

C + = A等价于C = C + A

- =

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

C - = A等价于C = C -

A

* =

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

C * = A等价于C = C * A

/ =

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

C / = A等价于C = C / A

(%)=

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数

C%= A等价于C = C%A

<< =

左移位赋值运算符

C << = 2等价于C = C << 2

>> =

右移位赋值运算符

C >> = 2等价于C = C >> 2

&=

按位与赋值运算符

C&= 2等价于C = C&2

^ =

按位异或赋值操作符

C ^ = 2等价于C = C ^ 2

| =

按位或赋值操作符

C | = 2等价于C = C | 2

8、三目运算符

?:; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果。

例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);//结果为i = 8.因为5 > 3为true,所以i = 5 + 3.

运算符的优先级

b261d1904ef93c7d2cbdf30a3f944538.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dubbo-admin安装和简单使用

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue&#xff0c;后端使用springboot&#xff0c;安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk&#xff0c;maven&#xff0c;nodejs 安装n…

java 文件流 重写_java中关于文件流的总结

[File类]1、 作用&#xff1a; 用于对磁盘文件进行操作。 删除、创建等。2、 三种常用的构造函数&#xff1a;① File file1 new File("F:\\test");直接传入一个路径&#xff0c;拿到一个文件或者是文件夹。② File file2 new File("F:\\test","tes…

java接口的默认方法,实现类调用接口默认方法

概述 Java8带来了一些全新的特性&#xff0c;包括lambda表达式、函数接口、方法引用、流、可选方法、接口中的静态方法和默认方法。 在本文中&#xff0c;我们将深入讨论为什么java8接口新增了默认方法&#xff0c;如何使用默认方法&#xff0c;并讨论一些有用的用例。 默认…

java程序的加载顺序_Java类的加载顺序

问题昨天有人问我一个类中有静态方法&#xff0c;有静态代码块&#xff0c;普通代码块&#xff0c;构造函数&#xff0c;普通方法&#xff0c;静态方法&#xff0c;那么它们的加载顺序是什么&#xff1f;如果有之类继承该类&#xff0c;也有如上的方法&#xff0c;那么加载顺序…

java.lang.Thread类详解,yield方法,join方法,interrupt方法,interrupted方法,destroy方法

一、前言 位于java.lang包下的Thread类是非常重要的线程类&#xff0c;它实现了Runnable接口&#xff0c;今天我们来学习一下Thread类&#xff0c;在学习Thread类之前&#xff0c;先介绍与线程相关知识&#xff1a;线程的几种状态、上下文切换&#xff0c;然后接着介绍Thread类…

hashSet与treeSet的去重原理

hashSet与treeSet的去重原理 1、TreeSet去重原理 &#xff1a;compareTo 可以实现排序及去重&#xff1a;如果compareTo返回0&#xff0c;说明是重复的&#xff0c;返回的是自己的某个属性和另一个对象的某个属性的差值&#xff0c;如果是负数&#xff0c;则往前面排&#xff…

php mysql group by_php – 如何在mysql查询中解决“不在GROUP BY中”错误

我有两个模型&#xff1a;帖子和喜欢有一对多的关系(所以,一个帖子有很多喜欢). Likings模型还有一个isActive字段,表示喜欢是主动还是被动.我想获得(排序)前5个帖子,这些帖子已经收到了最大的“活跃”喜欢(只有喜欢其isActive字段为true的帖子才会被考虑).这是查询&#xff1a…

排序实训问答

排序 注意事项&#xff1a; 问&#xff1a;你这排序怎么会出现两个0毫秒 或者怎么会出现0毫秒的现象呢&#xff1f; 答&#xff1a;在计算机中&#xff0c;时间的计算是以毫秒为单位的。当两个时间间隔非常短&#xff0c;小于1ms时&#xff0c;计算机可能会将时间计算为0毫秒…

git stash 缓存 简介

当我们在使用git的时候&#xff0c;又是会有这种情况&#xff1a;当新的需求了的时候。我们需要为此需求新建一个分支&#xff0c;再次分支上进行修改&#xff0c;当经过测试&#xff0c;提交代码时&#xff0c;在将其合并到主分支&#xff0c;或生产分支上。 但是有时候也有失…

java jsp session_JSP中Session的使用

你的session对象ID是&#xff1a;int Num 0; //定义前面要加!号synchronized void countPeople() { //同步方法Num;}%>if (session.isNew()) { //推断是否为新用户countPeople();String str String.valueOf(Num);session.setAttribute("count", str); //将str 加…

java中的线程池有哪些,分别有什么作用?

java中的线程池有哪些&#xff0c;分别有什么作用&#xff1f; 1.进程-线程简单介绍 2.java的线程池是什么&#xff0c;有哪些类型&#xff0c;作用分别是什么 3.使用线程池的优点 1.进程-线程的简单介绍 进程 什么是进程呢&#xff1f; 进程是计算机中的程序关于某数据集合…

二进制编译安装mysql_二进制编译安装mysql

1:解压包及做链接# tar xvf mysql-5.5.13-linux2.6-i686.tar.gz -C /usr/local# cd /usr/local# ln -sv mysql-5.5.13-linux2.6-i686 mysql# cd mysql---------------------------------------------------------------2:增加用户mysql及创建数据库数据存放目录/mydata/data# g…

线程安全的集合类有哪些?

验证ArrayList线程不安全 ArrayList 应当是开发中用到的最多的集合类&#xff0c;是动态列表&#xff0c;List 接口的实现类。 多数情况下&#xff0c;我们实在单线程环境使用&#xff0c;或者是在方法内部&#xff0c;以局部变量的形式使用&#xff0c;一般不会出现线程安全问…

try-catch-finally的执行顺序

try-catch-finally的执行顺序 结论&#xff1a; 不管有没有出现异常&#xff0c;finally代码块都会执行&#xff1b;不管try和catch的代码块中有return时&#xff0c;finally仍会执行&#xff0c;且如果finally代码块也有return&#xff0c;则此代码肯定会返回finally执行的r…

java jdbc mysql url_java – 如何生成JDBC数据库URL?

我今天已经研究了大约3个小时,我觉得我很接近,但我有几个问题.我到目前为止找到的最好的信息来源是&#xff1a;https://stackoverflow.com/a/2840358,但它没有回答我的所有问题.一点背景&#xff1a;我正在使用Microsoft SQL Server 2014,并且我已经验证了IP地址127.0.0.1处于…

try catch finally 中包含return的几种情况,及返回结果

第一种情况&#xff1a;在try和catch中有return&#xff0c;finally中没有return&#xff0c;且finally中没有对try或catch中要 return数据进行操作的代码&#xff0c;这种情况也是最好理解的。 public class Test {public static int num1;public static void main(String[] …

java jp2launcher.exe_芯科cp2112有熟悉的吗?配置不能保存是什么原因?

文件夹PATH列表卷序列号为2474-602AC:.├─CP2112_SDK│ │ ReleaseNotes.txt│ ││ ├─Documentation│ │ ├─ApplicationNotes│ │ │ an495.pdf│ │ │ an496.pdf│ │ ││ │ ├─Datasheets│ │ │ CP2112.pdf│ │ ││ │ ├─Datash…

包装类的缓存问题

包装类的缓存问题 整型、char类型所对应的包装类&#xff0c;在自动装箱时&#xff0c;对于-128~127之间的值会进行缓存处理&#xff0c;其目的是提高效率。 缓存处理的原理为&#xff1a;如果数据在-128~127这个区间&#xff0c;那么在类加载时就已经为该区间的每个数值创建…

java中项目启动时加载_如何在项目启动时,加载或解析某配置文件

在web项目中有很多时候需要在项目启动时就执行一些方法&#xff0c;而且只需要执行一次&#xff0c;比如&#xff1a;加载解析自定义的配置文件、初始化数据库信息等等&#xff0c;在项目启动时就直接执行一些方法&#xff0c;可以减少很多繁琐的操作。在工作中遇到了项目初始数…

Shiro介绍及主要流程

Shiro介绍及主要流程 什么是Shiro Apache Shiro是一个强大且灵活的开源安全框架&#xff0c;易于使用且好理解&#xff0c;撇开了搭建安全框架时的复杂性。 Shiro可以帮助我们做以下几件事&#xff1a; 认证使用者的身份 提供用户的访问控制&#xff0c;比如&#xff1a; 决定…