Java编程基础:深入理解常量、进制转换与补码
在Java编程中,常量、进制转换和补码是理解数据表示和处理的基础。本文将详细探讨这些概念,包括常量的分类、进制转换的方法以及补码的计算。
常量
常量是在Java程序运行过程中其值不能发生改变的量。它们用于定义固定的值,如配置参数、固定算法中的常数等。
分类
常量可以分为以下几类:
字面值常量
- 整数常量:表示所有的整数,包括负数,如
10
,-8
。 - 小数常量:表示所有的小数,如
1.23
,-3.14
。 - 布尔常量:
true
和false
。 - 空常量:
null
。 - 字符常量:表示由单引号括起来的单个字符,如
'a'
,'刘'
。
自定义常量
用户根据需要定义的常量,通常通过定义变量并将其值设为不可变来实现。
常见的单位转换
- 1byte = 8bit
- 1kb = 1024byte
- 1mb = 1024kb
- 1gb = 1024mb
- 1tb = 1024gb
- 1pb = 1024tb
进制转换
Java针对整数常量,提供4种表现形式:
- 二进制:由0,1构成,逢2进1,由
0b
开头。 - 八进制:由0,1,2,3,4,5,6,7构成,逢8进1,由
0
开头。 - 十进制:由0,1,2,3,4,5,6,7,8,9构成,逢10进1,默认就是10进制。
- 十六进制:由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f构成,逢16进1,由
0x
开头。
进制之间的转换
- 其它进制转10进制:按权展开求和。
- 10进制转其它进制:除基取余,直到商为0,余数翻转。
- 10进制与2进制之间的快速转换:8421码。
- 其它进制到其它进制:先转10进制,再转目标进制,或者先转2进制,再根据目标进制的位数分组转换。
示例代码
public class ConversionExample {
public static void main(String[] args) {
// 整数10的二进制表现形式
int decimal = 10;
String binary = Integer.toBinaryString(decimal);
System.out.println("Decimal 10 in binary: " + binary);
// 52转二进制、八进制、十六进制
int number = 52;
String binaryNumber = Integer.toBinaryString(number);
String octalNumber = Integer.toOctalString(number);
String hexNumber = Integer.toHexString(number);
System.out.println("Decimal 52 in binary: " + binaryNumber);
System.out.println("Decimal 52 in octal: " + octalNumber);
System.out.println("Decimal 52 in hex: " + hexNumber);
}
}
补码
在Java中,负数的表示采用补码形式。补码的计算过程包括原码、反码和补码的转换。
- 原码:正数的原码与二进制值保持一致,最高位为0;负数的原码数值位与正数一致,最高位是1。
- 反码:正数的反码与原码保持一致;负数的反码,再原码的基础上,符号位不变,数值位按位取反。
- 补码:正数的补码与原码保持一致;负数的补码,再反码的基础之上,末位+1。
示例
public class TwosComplementExample {
public static void main(String[] args) {
int negativeNumber = -7;
int positiveNumber = 3;
// 计算-7 + 3的结果
int result = negativeNumber + positiveNumber;
System.out.println("Result of -7 + 3: " + result);
// 打印补码
System.out.println("Binary representation of -7: " + Integer.toBinaryString(negativeNumber));
System.out.println("Binary representation of 3: " + Integer.toBinaryString(positiveNumber));
}
}
Java编程基础:深入理解变量
在Java编程中,变量是程序中最基本的元素之一,用于存储数据值。变量的值在程序执行过程中可以被读取和修改。本文将详细探讨Java中变量的定义、注意事项、数据类型转换以及使用示例。
变量概述
变量是指在Java程序运行过程中,其值可以发生改变的量。变量允许程序员在程序执行期间动态地存储和操作数据。
定义变量
定义一个变量的基本语句格式为:
数据类型 变量名 = 初始化值;
例如,定义一个整型变量age
并赋值为25
:
int age = 25;
使用变量的注意事项
- 初始化赋值:变量在使用前必须进行初始化赋值,以确保变量有一个确定的值。
- 命名规则:
- 变量名必须以字母、下划线
_
或美元符号$
开头。 - 变量名不能以数字开头。
- 变量名不能是Java中的关键字。
- 在同一作用域下,变量名不能重复,但大小写不同视为不同变量。Java严格区分大小写。
- 变量名必须以字母、下划线
- 数据类型默认:
- Java中整数默认是
int
类型,要想定义一个long
类型的变量,需要在值的末尾加上L
或l
,推荐使用L
。 - Java中小数默认是
double
类型,要想定义一个float
类型的变量,需要在值的末尾加上F
或f
,推荐使用F
。
- Java中整数默认是
数据类型转换
在Java中,变量参与运算时,会先自动提升数据类型,转换顺序为:
byte, short, char -> int -> long -> float -> double
这意味着在进行混合数据类型的运算时,较小范围的数据类型会自动转换为较大范围的数据类型,以避免数据丢失。
强制数据类型转换
强制数据类型转换是指将一种数据类型显式转换为另一种不兼容的数据类型。转换格式为:
目标数据类型 变量名 = (目标数据类型)(要转换的值或表达式);
例如,将double
类型的值强制转换为int
类型:
double d = 10.5;
int i = (int)d; // 结果为10
注意:强制类型转换可能会导致精度损失,应谨慎使用。
示例代码
public class VariableExample {
public static void main(String[] args) {
// 定义不同类型的变量
byte b = 100;
short s = 200;
int i = 300;
long l = 400L;
float f = 50.5F;
double d = 60.5;
char c = 'A';
boolean bool = true;
// 自动类型转换示例
int sum = b + s + i; // byte和short自动转换为int
// 强制类型转换示例
int intResult = (int)d; // double转换为int
// 输出结果
System.out.println("Byte: " + b);
System.out.println("Short: " + s);
System.out.println("Int: " + i);
System.out.println("Long: " + l);
System.out.println("Float: " + f);
System.out.println("Double: " + d);
System.out.println("Char: " + c);
System.out.println("Boolean: " + bool);
System.out.println("Sum: " + sum);
System.out.println("Integer result of double: " + intResult);
}
}
标签:进制,Java,常量,int,System,println,变量,out
From: https://www.cnblogs.com/bjynjj/p/18487429