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); //1100

如果对负数取模,可以把模数负号忽略不记,如: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); //4000

比较运算符

//比较运算符
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); //2

三元运算符

格式:
(条件表达式)?表达式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";
时间: 2024-12-06 00:21:38

Java 基本语法----进制、运算符的相关文章

java中的进制转换

进制转换 首先是十进制转化为其他进制,如二进制,八进制,十六进制: 它们在java中都有专门的函数可供调用: 如:十进制转化为二进制时调用toBinaryString(); 十进制转化为八进制时调用toOctalString(); 十进制转化为十六进制时调用toHexString(); 代码实现: // 进制转化 public class Main_2 { public static void main(String[] args) { Integer a=new Integer(20); //

java byte 16进制转换

整型转16进制: int devIdInt = Integer.parseInt(devId); String devIdString = Integer.toHexString(devIdInt); 16进制转为字节: byte devBin = (byte) Integer.parseInt(devIdString, 16); byte devBin =Integer.valueOf(devIdString, 16).byteValue(); byte devBin =Byte.parseB

Java I/O : Java中的进制详解

作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层.那么二进制,字节码这些会在哪里用到呢? 自问自答:在跨平台的时候,就凸显神功了.比如说文件读写,数据通信,还有Java编译后的字节码文件.下面会有个数据通信的例子哦. Java对对象实现Serializablle接口,就可以将其转化为一系列字节,而在通信中,不必要关系数据如何在不同机器表示和字节的顺

Java中的进制

1.Java的内置进制的转化 Integer.toBinaryString(int i);//将十进制转化为二进制 Integer.toOctalString(int i);//将十进制转化为八进制 Integer.toHexString(int i);//将十进制转化为十六进制 Integer.valueOf("100",2);//将二进制转化为十进制 Integer.valueOf("376",8);//将八进制转化为十进制 Integer.valueOf(&q

Java转义字符和进制的转换

一:转义字符 \r 表示接受键盘输入,相当于按下回车. \n 表示换行. \t  制表符,相当于Table键 \b 退格键,相当于Back Space \'  单引号 \'' 双引号 \\ 表示一个斜跨 注意:换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符 二:进制的转换 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为0 ,将余数从下上连接起来就是二进

黑马程序员-java基础-数组&amp;进制转换

第一讲  数组初始化&操作 1.  数组定义 概念:数组是同一种类型数据的集合,其实数组就是一个容器.数组中的元素从0开始编号,这样方便了对这些元素进行操作(获取.修改改.排序等). 数组的定义格式有: Int[] arr = new int[10]; ——这里指定数组的长度,后续需要分别对每一个元素赋值: Int[] arr = new int[]{2,1,5,9}:——创建数组实体并初始化,不需要指定长度: Int[] arr = {2,1,5,9};——定义数组并初始化: 2.  数组操作

JAVA中的进制转换问题

十进制转成十六进制:  Integer.toHexString(int i) 十进制转成八进制  Integer.toOctalString(int i) 十进制转成二进制  Integer.toBinaryString(int i) 十六进制转成十进制  Integer.valueOf("FFFF",16).toString() 八进制转成十进制  Integer.valueOf("876",8).toString() 二进制转十进制  Integer.value

Java 大数任意进制转换

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); String s = cin.nextLine(); int x = cin.nextInt(); int y = cin.nextInt(); System.out.println(Transform(s,x,y)); } //s:输入的数字 x:

java 的任意进制间转换(很方便)

import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("十进制转换成其它进制:"); int x = 3213; String s1 = Integer.toHexString(x); //将十进制数转换成十六进制数的字符串 System.out.printl