Java 基本语法----进制、运算符
进 制
对于整数,有四种表示方式:
二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
十进制:0-9 ,满 10 进 1.
八进制:0-7 ,满 8 进1. 以数字 0 开头表示。
十六进制:0-9 及 A-F,满 16 进1. 以 0x 或 0X开头表示。此处的A-F不区分大小写。
所有数字在计算机底层都以二进制形式存在。
计算机以补码的形式保存所有的整数。
正数的补码与其原码相同;负数的补码是在其反码的末位加1。
原码:直接将一个数值换成二进制数。
反码:是对原码按位取反,只是最高位(符号位)保持不变。
Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位

进制的基本转换
十进制二进制互转
十进制转成二进制 除以2取余数
二进制转成十进制 乘以2的幂数
二进制八进制互转
二进制十六进制互转
十进制八进制互转
十进制十六进制互转

运算符
运算符分类
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三元运算符
算数运算符

//取模
int r = 10 % 3;
System.out.println(r); //自增
int i = 10; //i++: 先取 i 值, 在运算(i = i + 1)
int j = i++;
System.out.println(j); j = i;
System.out.println(j); int m = 100;
//++m: 先运算(m = m + 1), 后取值
int n = ++m;
System.out.println(n); n = m;
System.out.println(n); //+: 字符串相加
String str = "abc";
String str2 = "def"; String str3 = str + str2; //abcdef
System.out.println(str3); //如果对负数取模,可以把模数负号忽略不记
System.out.println(10 % -3); //1
//如果被模的数是负数, 则先对其绝对值进行取模运算, 结果在加上一个负号
System.out.println(-10 % 3); //-1 System.out.println(-10 % -3); //-1 //整数之间做除法时,只保留整数部分而舍弃小数部分
int x=3510;
x= x / 1000 * 1000;
System.out.println(x); //3000 //+ 除字符串相加功能外,还能把非字符串转换成字符串
String str4 = "1";
System.out.println(str4 + 100); //
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数就另当别论。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的结果是3000
“+”除字符串相加功能外,还能把非字符串转换成 字符串.例如:System.out.println("5+5="+5+5); //打印结果是5+5=55
赋值运算符
符号:=
扩展赋值运算符: +=, -=, *=, /=, %=
x += 1000; // x = x + 1000;
System.out.println(x); //
比较运算符

//比较运算符
System.out.println(x >= 1000); //true
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” 。
逻辑运算符

//逻辑运算符
int a = 10;
int b = 20;
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6 。
“&”和“&&”的区别
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false。
// &: 与 运算符, 当且仅当两边都为真时, 表达式的结果为 true
System.out.println(a > 5 & b < 30); //true
System.out.println(a > 15 & b < 30); //false
System.out.println(a > 5 & b < 20); //false // |: 或 运算符, 当且仅当两边都为假时, 表达式结果为 false
System.out.println(a > 5 | b < 30); //true
System.out.println(a > 15 | b < 3); //false
System.out.println(a > 5 | b < 20); //true // ^: 异或 运算符, 当且仅当两边的表达式的结果不同时为 true, 否则为 false
System.out.println(a > 5 ^ b < 30); //false
System.out.println(a > 15 ^ b < 3); //false
System.out.println(a > 5 ^ b < 20); //true // !: 取反 运算符.
System.out.println(!(a > 5)); //false //短路逻辑运算符: &&, ||. 若 短路逻辑运算符前的表达式已经可以确定整个表达式的值,
//则不再判断 短路运算符后边的表达式的值
System.out.println(a > 15 && (10 / 0 == 1)); //false
位运算符
位运算是直接对二进制进行运算

//位运算符
int c = 3; //0000 0011 //左移运算符
System.out.println(c << 2); //0000 1100 -> 12 3 * (2*2) = 12 //右移运算符
System.out.println(c >> 2); //0000 0000 -> 0 3 / (2 * 2) = 0; //无符号右移运算符
int d = -1;
System.out.println(d >> 1); //-1
System.out.println(d >>> 1); //-1 //& 位运算符
/*
* 0000 0010
* & 0000 0011
* ___________
* 0000 0010
*/
System.out.println(2 & 3); //

三元运算符
格式:
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
//三元运算符
String e = d > 3 ? "d > 3" : "d <= 3";
System.out.println(e); // d <= 3 //编译不能通过, 因为 : 的两边必须是表达式, 且必须是类型兼容的表达式
//d > 3 ? System.out.println("a") : System.out.println("b"); boolean res = d > 3 ? false : ">3";
Java 基本语法----进制、运算符的更多相关文章
- Java I/O : Java中的进制详解
作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ...
- java中16进制转换10进制
java中16进制转换10进制 public static void main(String[] args) { String str = "04e1"; String myStr ...
- java语言基础-进制
一丶Java语言基础:进制 1.进制的四种表现形式 (1).二进制:0,1 满2进1. (2).八进制0-7 :满8进1,用0开头表示. (3).十进制:0-9 满10进1. (4).十六进制:0-9 ...
- java中的进制转换
java中的进制转换及转换函数 转自:https://blog.csdn.net/V0218/article/details/74945203 Java的进制转换 进制转换原理 十进制 转 二进制: ...
- java利用16进制来辨别png格式的图片
很多人知道利用.png的字符串结尾可以判断前端传入的图片是否为png格式,但是这只是潜意识的判断!那么如何利用png读写的特殊内容来深意识地判断图片格式呢?最近在做东西的时候遇到了点问题,在加载图片的 ...
- java中的进制转换方法
java中进行二进制,八进制,十六进制,十进制间进行相互转换 关键字: java 进制转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer ...
- java byte 16进制转换
整型转16进制: int devIdInt = Integer.parseInt(devId);String devIdString = Integer.toHexString(devIdInt); ...
- Java 大数任意进制转换
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = ...
- Java Hex 16进制的 byte String 转换类
package mobi.dzs.android.util; import java.util.Locale; /** * 16进制值与String/Byte之间的转换 * @author Jerry ...
随机推荐
- 关于一个页面的tab切换整体页面刷新而tab标签处是同一个文件怎么做焦点的问题
解决方法,不能直接写点击效果就要在超链接中加一个参数,根据参数的值去给变焦点的效果,实现方法如下: <div class="vip_search"> ...
- ubuntu怎用使用命令搜索软件源中的软件
转自:http://jingyan.baidu.com/article/6d704a13f6bf1b28da51ca69.html ubuntu中是用apt-get来进行软件安装的,我们首先打开终端来 ...
- 混合编程:error LNK2001: unresolved external symbol
Vs2006+matlab2010rb环境: 1:工具-选项-项目解决方案-VC++目录设置include和lib的路径 2:项目-属性-属性配置-链接器-输入-附加依赖项把库的名字添加进去 VIST ...
- Android中自定义控件,三个构造函数
自定义控件时,最好抽象得彻底,并且编写需严谨,因为可能程序中多处都会引用到它,或者提供给团队中的其他人使用. 其一般步骤为: 1.创建控件的类文件,定义其功能逻辑.一般继承自现有控件或者View 2. ...
- hdu 5215 Cycle
题意:找到一个图中是否含有奇环和偶环 题解: 1.用了两种发法.一个就是跟bc给的答案一样,先求弱联通分量.再在环中找奇偶环 2.我想到的一个略微省些代码量的方法.边求联通分量,边推断是否含有奇环偶环 ...
- 3dMax常见问题
误关掉了命令面板顶部菜单栏[自定义]->[显示UI]->勾选上命令面板 调整右侧命令面板的位置鼠标放在命令面单顶部,当显示两个长方形时,可以鼠标左键拖动. 命令面板拖动后可以停 ...
- 【Unity】UGUI无法修改字体大小
无论怎么修改Font Size都无法调整字体大小? 如果勾选了Best FIt属性,那么字体大小将不受Font Size属性控制,且字体大小会调整为填满控件的矩形. 文档中对该属性的描述:
- C语言实现---学生成绩管理系统
C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> ...
- 一、VM8.0 + CentOS 6.5 连接网络
VM8.0 + CentOS 6.5 连接网络
- Windows消息目录
Windows消息目录1. WM_NULL=$0000:2. WM_CREATE=$0001: 应用程序创建一个窗口3. WM_DESTROY=$0002: 一个窗口被销毁4. WM_MOVE=$00 ...