Java中如何实现无符号数的转换

Java中如何实现无符号数的转换

目录:

1.Java有哪几种数据类型

2.Java中如何实现无符号数的转换

正文:

1. Java有哪几种数据类型

Java共有8种基本数据类型
4种整形: byte,char,int,long
2种浮点类型: float,double
1种字符型:char
1种表示真值的类型:boolean


注意:

c语言中也有表示真值的数据类型:bool,但是使用的时候要加上一个头文件,否则无法使用#include,而Java没有这种顾虑,可以直接用。


类型 存储需求 取值范围
int 4字节 -2 147 483 648~2 147 483 647
short 2字节 -32 768~32 767
long 8字节 -9 223 372 036 854 775 808~9 223 372 036 854 775 807
byte 1字节 -128~127

2. Java中如何实现无符号数的转换

1.位运算

位运算

基础:

符号 名称 作用
& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1,否则位0
^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1
~ 按位取反 用来对一个二进制数按位取反,即将0变1,将1变0
<< 左移 用来将一个数的各二进制位全部左移N位,右补0
>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0

字节小的类型转化为字节大的类型

例如:byte a=-20;

int b=a & 0xff; (0xff为16进制等于2进制的11 111 111)

解释:

-20的二进制为 11 101 100

与11 111 111的且运算,结果为:0 000 000 011 101 100化为10进制为236

2.

static String toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对应的字符串。
static String toUnsignedString(int/long i, int radix):将指定int或long型整数转换为指定进制的无符号整数对应的字符串。
static xxx parseUnsignedXxx(String s):将指定字符串解析为无符号整数。当调用类为Integer时,xxx 代表 int。
static xxx parseUnsignedXxx(String s, int radix):将指定字符串按指定进制解析为无符号整数。调用类为Integer时则xxx代表int
Byte.toUnsignedInt(b):将char类型转化为无符号整数的int型

你可能感兴趣的:(java,开发语言)