Java中如何实现无符号数的转换
目录:
1.Java有哪几种数据类型
2.Java中如何实现无符号数的转换
正文:
Java共有8种基本数据类型
4种整形: byte,char,int,long
2种浮点类型: float,double
1种字符型:char
1种表示真值的类型:boolean
注意:
c语言中也有表示真值的数据类型:bool,但是使用的时候要加上一个头文件,否则无法使用#include<stdbool.h>,而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 |
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型