首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java补码运算_java补码运算

大家好,又见面了,我是你们朋友全栈君。...public class Test2_8 { /* 补码运算 * 在计算机,数值一率采用补码来运算,如:5-3实例上是5+(-3); * 正数与负数关系:取反再加1 * */ public static...void main(String args[]){ int five=5; int three=-3;//从输出结果来看负数是用补码来存储 //输出5和-3二进制码,最高位(最左边那位)为0表示正数...先取反得到1100再加1得到1101与下行输出匹配 System.out.println(Integer.toBinaryString(three));//1101->-3 //正数值是其本身 //负数值是这么计算...,以-3为例,先将1101取反得到0010再加1得到0011, //由于是负数,最高位用1表示,得到1011=-(1+2) /* * 补码运算计算规则:最高位有进位则舍弃 * 那么5-3结果是这么算

74350

java运算 ^, >,&

1.首先先说说^(异或运算),先看代码 public static void main(String[] args) { System.out.println("2^3运算结果是 :"+(2^...3)); //打印结果是:2^3运算结果是 :1} 那么这个1是怎么来,我们要知道^、>等位运算符主要针对二进制,算异或时候相同为0,不同为1 2转换成二进制是0010...//2<<3运算结果是 :16} 在运算时候同样要把十进制转换成二进制, 2二进制是0010 ,向左移3位后面用000不齐,结果是10000 二进制10000转换成十进制是16(从右往左分别是1,2,4,8,16,32...&运算 按位“与”计算是把两个数字分别写成二进制形式,然后按照每一位判断,&计算,只要有一个是0就算成0 看下例子:System.out.println(1&2);打印0 , System.out.println...(1&1);打印1 下面解释下原因 1二进制为:0001 2二进制为:0010 运算结果为:0000 ->0 同理两个1&运算二进制结果为0001->结果为1

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

java运算取余

大家好,又见面了,我是你们朋友全栈君。...java取余 在java运算中有时会出现对一个整数取余操作,首先复习一下小学学过除法公式: 除数 ÷ 被除数 = 商 如果没有被整数就会出现余数,例:10 ÷ 3 = 3 余数为 1 在...java运算,取余符号是 % 1、第一种情况一个大整数对一个比它小整数取余 public static void main(String[] args) { int a...= 10, b = 3; System.out.println(a % b); } 输出结果: 1 2、第二种情况一个小整数对一个比它大整数取余 public static void...c % d); System.out.println(e % f); } 输出结果: 8 21 43 总结: 两个整数A、B做取余操作,例:A%B 如果A>B,取余结果按照小学学过数学公式计算

1.1K20

Java运算

本人技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上你有所助益。...Java运算符 文本关键字:位运算符、位逻辑运算符、移位运算符 一、位运算符 大家在接触运算时候通常都已经学完了变量使用,对于算术以及赋值运算感觉就是So easy!...对于整数和字符型运算符操作也有一些潜在法则,相信看完这篇文章你很容易就会掌握。 二、逻辑运算 在逻辑运算我们已经使用过能够表达逻辑意义运算符,如:&&,||,!。...与(&) 与运算运算相当于物理电路串联电路,我们假设用1代表通路,用0代表断路,那么对于串联电路来说,只有当运算符两边全为1(通路)时,运算结果才为1(通路)。 ? ?...或(|) 或运算运算相当于物理电路并联电路,我们假设用1代表通路,用0代表断路,那么对于并联电路来说,只要运算符两边有一个为1(通路)时,运算结果就为1(通路)。 ? ?

65130

Java 比较运算

小菜鸟才学习 Java 没多久,这天要写一个存储长整形列表,于是这样写: List listData = new ArrayList(); 这时 Android Studio...(他脑子里定势一直以为 List 类型参数还是 long 呢),Java 就是比 C++ 矫情。想想 IDE 这里只是警告,并不是错误,所以也不加理会继续完成他代码去了。...小菜鸟惭愧极了,基础不牢靠啊,赶紧翻出自己 Java 入门书对应章节看了一下,看完才恍然大悟,原来 Java比较运算符里还有这么多小细节呢……不是把 C++ 里经验直接照搬过来就行了。...Java 比较运算符里一些细节 >>=<<= ==!= 当 和 引用同一个对象时,则 ,否则 。 每种数值类型都有对应包装类,比如 long 包装类 Long。...包装类实例可以与数值型值比较,是直接取出包装类实例所包装数值来比较。 涉及自动装箱后情况复杂了一些,比如 这时 ina == inb 成立,而 inc == ind 不成立。

1K30

Java 比较运算

(他脑子里定势一直以为 List 类型参数还是 long 呢),Java 就是比 C++ 矫情。想想 IDE 这里只是警告,并不是错误,所以也不加理会继续完成他代码去了。...小菜鸟惭愧极了,基础不牢靠啊,赶紧翻出自己 Java 入门书对应章节看了一下,看完才恍然大悟,原来 Java比较运算符里还有这么多小细节呢……不是把 C++ 里经验直接照搬过来就行了。...Java 比较运算符里一些细节 >、>=、< 和 <= 只支持两边操作数都是数值类型。 == 和 != 两边操作数可以都是数值类型,也可以都是引用类型,但必须是同一个类实例。...原因是在 java.lang.Integer 类里,对 -128~127 之间整数自动装箱成 Integer 实例,并且缓存了起来,所以对此范围内整数自动装箱时,实际上都指向了缓存里对象,所以会出现上面的情况...最佳实践 引用类型实例之间,除非想要知道是否是引用同一个对象,否则它们之间比较,总是使用 equals() 方法。 参考 《疯狂 Java 讲义》——李刚著 第 3.7.5 节 比较运算符。

1.3K20

Java|聊聊运算“目”

问题描述 Java是一门面向对象编程语言,不仅吸收了C++语言各种优点,还摒弃了C++里难以理解多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。...Java强大功能以及其广泛实用性,使得越来越多的人开始学习使用该语言。 对于有编程基础小伙伴,学习其他编程语言,其实就是了解该语言语义、语法规则和语句构成。...相对于Python来讲,Java语句数量显然有所增加,写语句思想却大同小异。...在前段时间,在许多关于Java教程,比如菜鸟教程和Java基础教程一书中,在关于运算知识块讲解时,都有提到一个字眼“目”。比如:条件运算符“?:”是一个3目运算符。...在有些地方,也将某目运算符叫做某元运算符。当然,其中“元”也是指操作数个数。 结语 在学习知识时候,不能仅凭猜想学习,在学习过程,更要知其所以然。

61420

java移位运算符:,>>>总结

java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     ...无符号右移,忽略符号位,空位都以0补齐 下面来看看这些移位运算都是怎样使用 1 /** 2 * 3 */ 4 package com.b510.test; 5 6 /** 7...>> 1; 21 //右移一位 22 printInfo(number); 23 } 24 25 /** 26 * 输出一个int二进制数...; 看了上面的demo,现在是不是对左移和右移了解了很多了呢 对于:>>>  无符号右移,忽略符号位,空位都以0补齐 value >>> num     --   num 指定要移位值value 移动位数...无符号右移规则只记住一点:忽略了符号位扩展,0补最高位  无符号右移运算符>>> 只是对32位和64位值有意义 E | hongtenzone@foxmail.com  B | http://www.cnblogs.com

90150

【原创】Java运算符以及字符串运算

赋值运算符(=): 将等号右边数赋值给等号左边变量或者final修饰常量。...短路与运算(&&):当两边都为true时,结果为true;只要一边为false,则与运算结果为false。 与"与运算"区别:当第一个操作数时为true时,则不会执行第二个操作数运算。...短路或运算(||):当两边都为false时,结果为false;只要一边为true,则与运算结果为true。 与"或运算"区别:当第一个操作数为false时,则不会执行第二个操作数运算。...非运算(~) 取反运算,当位为0时,则结果为1,当位为1时,则结果为0 左移位运算(<<) 把原来二进制向左移动,末尾补零,如m << n,就是将m二进制位向左移动n位,得到结果为m*2^n(...正数和负数均通用) 右移位运算(>>) 把原来二进制向右移动,正数高位补零,负数高位补1 如m >> n,就是将m二进制位向左移动n位,得到结果为m/2^n(仅适用于正数) 无符号右移为运算(

50320

2.3 java运算符(一)

上篇文章我们刚刚研究了java变量和数据类型,这节课我们来介绍一下java运算符。java运算符主要分为: 算数运算符,赋值运算符,关系运算符,逻辑运算符,位运算符和三目运算符。...ok,减减用法和加加一样。 2. 赋值运算符 赋值运算,最常见就是“=”,a=4;实际就是把等号右边4赋值给等号左边变量a,所以a值变成了4....在赋值运算,除了等号以外,还有这么几种, 分别是:+=,-=,*=,/=,%= 这几个也是比较常见,需要注意是,赋值运算左边必须是变量,不能是常量。...而这个+=运算规则是这样, a+=b;就相当于a=a+b; 只不过在+=实际上包含了一个强制类型转换。这个我们通过一道经典面试题来了解一下。...s+=1;这句代码是没有问题,因为我们说过+=运算包含了一个强制类型转换,所以也就相当于: s= (short)(s+1); ok,本篇文章我们先介绍着两种运算符,剩下运算符我们在后续文章中继续讲解

34430

Java基础教程(5)-Java运算

Java运算Java有4大类运算符:算术运算、位运算、关系运算和逻辑运算。另外Java还定义了一些附加运算符用于处理特殊情况。算术运算符算术运算运算数必须是数字类型。...算术运算符不能用在布尔类型上,但是可以用在char类型上,因为实质上在Java,char类型是int类型一个子集。...但是,当递增或递减运算符作为一个较大表达式一部分,如果递增或递减运算符放在其运算数前面,Java就会在获得该运算值之前执行相应操作,并将其用于表达式其他部分。...如果运算符放在其运算数后面,Java就会先获得该操作数值再执行递增或递减运算运算Java定义运算直接对整数类型位进行操作,这些整数类型包括long,int,short,char byte。...日常用到不多;关系运算符关系运算符(relational operators)决定值和值之间关系。产生结果是布尔值。常用在if控制语句和各种循环语句表达式;主要有以下几种: == 等于!

7510

Java 移位运算符(Shift Operator)

为什么有 3 个,移位运算不是左就是右,为什么有 3 个? 因为 Java 整数是有符号整数,所以针对符号转换 Java 添加了一个无符号右移。...只能用于整数 Java 移位运算,不能用于浮点数,只能用于整数。...类型 长度 long 64 位 int 32 位 short 16 位 byte 8 位 char 16 位 整数 2 进制表达 在 Java 整数 int 表达,其中有一个位留给了符号位置,所以真正可以存储数据位为...带符号右移操作符 >> Java整型表示负数时,最高位为符号位,正数为0 ,负数为1 。 >> 是带符号右移操作符,将数据转换成二进制数后,向右移若干位,高位补符号位,低位丢弃 。...我们会发现对应 2 进制长度不一样,因为在 Java 程序对于二进制,前面为 0 时候,在输出时候会进行丢弃

25220

Java三元运算

Java三元运算符 一、什么是三元运算符? 二、怎么使用三元运算符 三、关于三元运算小练习 1、第一题 2、第二题 一、什么是三元运算符?...讲三元运算符之前,我们先讲一讲双目运算符,比如我们常用 “=” 赋值运算符,就是一个双目运算符。它格式如下: 表达式 = value;我们可以很明显看出一个等于号(“=”)连接了两个式子。...所以三元运算符就是可以连接三个式子一种符号,我们来看看它格式 条件式 ?...值1 : 值2; 三元运算运算规则:若条件为true,整个表达式取值1,否则取值2 二、怎么使用三元运算符 一个小实例: bollean b= 40<50 ?...1、第一题 很简单一个题,输入小明成绩,如果高于95分,则为优秀,否则成绩良好 样例输入 95 样例输出 成绩一般 代码实现 import java.util.Scanner; /*

83620

Java运算符>>和>>>区别

表示左移两位 <<表示左移移,不分正负数,低位补0; 注:以下数据类型默认为byte-8位 左移时不管正负,低位补0 正数:r = 20 << 2 正数:r = 20 << 2 20二进制补码...:0001 0100 向左移动两位后:0101 0000    结果:r = 80 负数:r = -20 << 2 负数:r = -20 << 2 -20 二进制原码...:1001 0100 -20 二进制反码 :1110 1011 -20 二进制补码 :1110 1100 左移两位后补码:1011 0000     ...0001 0100 向右移动两位后:0000 0101        结果:r = 5 负数:r = -20 >> 2 负数:r = -20 >> 2 -20 二进制原码...:1001 0100 -20 二进制反码 :1110 1011 -20 二进制补码 :1110 1100 右移两位后补码:1111 1011

16220
领券