在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换。
来源:互联网 发布:js validate valid 编辑:程序博客网 时间:2024/05/14 09:17
在C语言中
char,类型识别符,字符型。
[signed]char 有符号字符型 长度(字节)为1 -128~127
unsigned char 无符号字符型 长度(字节)为1 0~255
在Java中
char 16位 范围是2负的2的15次方到2的15次方的整数
byte 虽然是8位,但是取值范围是负的2的7次方到2的7次方的整数
在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换。
方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stream中的数据以Unsigned读取。
Java在这方面提供了支持,可以用java.io.DataInputStream 类对象来完成对流内数据的Unsigned读取,该类提供了如下方法:
(1)int readUnsignedByte () //从流中读取一个0~255(0xFF)的单字节数据,并以int数据类型的数据返回。返回的数据相当于C/C++语言中所谓的“BYTE”。
(2)int readUnsignedShort () //从流中读取一个0~65535(0xFFFF)的双字节数据,并以int数据类型的数据返回。返回的数据相当于C/C++语言中所谓的“WORD”, 并且是以“低地址低字节”的方式返回的,所以程序员不需要额外的转换。
方案二:利用Java位运算符,完成Unsigned转换。
正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码:
public int getUnsignedByte (byte data){ //将data字节型数据转换为0~255 (0xFF 即BYTE)。
return data&0x0FF ;
}
public int getUnsignedByte (short data){ //将data字节型数据转换为0~65535 (0xFFFF 即 WORD)。
return data&0x0FFFF ;
}
public long getUnsignedIntt (int data){ //将int数据转换为0~4294967295 (0xFFFFFFFF即DWORD)。
return data&0x0FFFFFFFF ;
}
- 在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换。
- char,unsigned char,unsigned short,有符号和无符号之间的转换
- 字符串转换为无符号整数(unsigned int)的问题
- c 语言中无符号整型(unsigned)的溢出
- java 中unsigned类型的转换
- java 中unsigned类型的转换
- Java中unsigned类型的转换
- java 中unsigned类型的转换
- java 中unsigned类型的转换
- c语言中无符号(unsigned)和有符号(signed)的区别
- 宽字符wchar、窄字符char、无符号字符(unsigned char)之间的转换
- Java Unsigned数据类型解决方案
- Java Unsigned数据类型解决方案
- Java Unsigned数据类型解决方案
- C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题
- C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题
- 有符号和无符号 unsigned signed
- 对于unsigned的数据类型
- C++ WIN32(如何使用游戏壳)
- 《转》关于ath5k网卡驱动中beacon的发送过程(特别是timestamp字段)
- 并查集
- PAT乙级1055
- 问题四十四:怎么用ray tracing画空间任意位置的圆环的任意片段
- 在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换。
- TO BE A BRIGHT FOOL!
- Git常用的命令
- 【Maven】依赖和仓库
- POJ-2286-The Rotation Game(IDA*入门)
- 标准异常库
- PAT 1085
- HashMap-Java 数组到 HashMap 之算法解释
- maven 编译报错MojoFailureException