当前位置:首页 » 编程语言 » javabyte无符号

javabyte无符号

发布时间: 2022-02-28 12:08:27

java中byte与char的问题。

byte是字节数据类型,是有符号型的,占1个字节;大小范围为-128—127。

char是字符数据类型,是无符号型的,占2字节(Unicode码);大小范围是0—65535;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符。


区别:


1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127的数;

2、char可以表中文字符,byte不可以;

3、char、byte、int对于英文字符,可以相互转化



对于你上面说的最后会出异常是因为你不能通过while对DataInputStream 无限制的读取,DataInputStream 内容读取完了之后就没有数据可读,固然会报错。

你应该先判断DataInputStream 是否可用,只有在可用的情况下能继续读取,应该改成:

		DataInputStreamdi=newDataInputStream(newByteArrayInputStream(
s.getBytes()));
while(di.available()>0){
System.out.print((char)di.readByte());
}



文章参考:http://blog.csdn.net/luoweifu/article/details/7770588

㈡ java如何将十六进制0xFF5100A5转换为无符号int值,貌似java不支持无符号数据

你需要使用long来存储这个值,long在java里是64位整数,java确实不支持无符号数据。

㈢ 您好,我想问下,您在java中怎么表示的无符号数据

可以将C5这个toByte,具体用法:
String c5 = "C5";
bytes[] bys = c5.getBytes();
使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

㈣ java如何向io流写入无符号的字节型数据

OutputStream os = socket.getOutputStream();
os.write(command);
直接用输出流写,支持byte[]参数,你用的bw.write(message[i]);参数是int类型的,int占四个字节

㈤ Java不提供无符号整数类型谢谢

是的不提供;
--------------------------------------
Java 中的无符号类型是怎么回事儿?
在 C 和 C++ 这样的语言中,都提供了不同长度的整数类型:char, short, int, long (实际上,char 并不是真正的整数,但是你可以把它当成整数来用。在实际应用场景中,很多人在 C 语言中用 char 来存储较小的整数)。在大部分的 32 位操作系统上,这些类型分别对应 1 字节,2 字节,4 字节和 8 字节。但是需要注意的是,这些整数类型所对应的字节长度在不同的平台上是不一样的。相对而言,由于 Java 是针对跨平台来设计的,所以无论运行在什么平台上,Java 中的 byte 永远是 1 字节,short 是 2 字节,int 是 4 字节,long 是 8 字节。
C 语言中的整数类型都提供了对应的“无符号”版本,但是 Java 中就没有这个特性了。我觉得 Java 不支持无符号类型这个事儿实在是太不爽了,你想想,大量的硬件接口、网络协议以及文件格式都会用到无符号类型!(Java 中提供的 char 类型和 C 中的 char 有所不同,在 Java 中,chat 是用 2 个字节来表示 Unicode 值,在 C 中,char 是用 1 个字节来表示 ASCII 值。虽然可以在 Java 中把char 当做无符号短整型来使用,用来表示 0 到 2^16 的整数。但是这样来用可能产生各种诡异的事情,比如当你要打印这个数值的时候实际上打印出来的是这个数值对应的字符而不是这个数值本身的字符串表示)。
那么,如何应对 Java 中无符号类型的缺失?
好吧,对于我给出的这种方案,你可能会不喜欢……
答案就是:使用比要用的无符号类型更大的有符号类型。
例如:使用 short 来处理无符号的字节,使用 long 来处理无符号整数等(甚至可以使用 char 来处理无符号短整型)。确实,这样看起来很浪费,因为你使用了 2 倍的存储空间,但是也没有更好的办法了。另外,需要提醒的是,对于 long 类型变量的访问不是原子性操作,所以,如果在多线程场景中,你得自己去处理同步的问题。

地址:http://www.cnblogs.com/yuanyq/p/java_unsigned_types.html
原文地址:http://www.darksleep.com/player/JavaAndUnsignedTypes.html
原文作者:Sean R. Owens

㈥ 为什么java 中byte不考虑无符号位范围是0-255

byte类型在java中用1个字节存储,有8个比特数,有符号位范围是-2的(8-1)次方到2的(8-1)次方减1,即-128~127(由于有一个比特数用于存放符号);所以无符号的话,8位比特数全用来表示数值范围,最低值为00000000(二进制数),即为0;最高值11111111即1+2+4+8+16+32+64+128(2的8次方减1)=255。

㈦ java(byte)>>>时怎么运算的

0xa2是142, 已经超过了 byte 的存储空间(-128~+127),会溢出,得到了一个未知的数.
>>>是无符号右移,对于正数相当于除以了4(2^2).

㈧ java如何将一个byte类型转化为无符号数

什么叫无符号数????不是很清楚你说的什么?

你的意思是绝对值么?
byte a=-11;
Math.abs(a);
System.out.println(Math.abs(a));

㈨ 用java语言,得到一个整数,如何用6个字节的无符号整数的形式写入文件。

说说方法吧,下面代码是用java将一个无符号整数用字节数组表示
public class testCharArray {
public static void main(String[] args) {
int i = 112314;
String str = String.valueOf(i);
char[] charArray = str.toCharArray();
for(int c = 0 ; c < charArray.length ; c ++){
System.out.println(charArray[c]);//112314
}
}
}
至于写入文件方法很多,这里说一种吧,FileWritter
new FileWriter(file,true);true它会保留现有的内容,并追加新内容在文件的末尾。

㈩ java 无符号byte,即8表示0~255如何实现

可以用byte数组

热点内容
android学习源码 发布:2025-01-11 11:26:23 浏览:411
服务器都坏了如何恢复 发布:2025-01-11 11:24:04 浏览:352
微博缓存的图片能清理吗 发布:2025-01-11 11:01:49 浏览:306
文字加密器 发布:2025-01-11 11:01:08 浏览:453
vc60非静态编译 发布:2025-01-11 10:51:32 浏览:614
电脑上怎么解压缩文件 发布:2025-01-11 10:51:31 浏览:783
枪战王者如何用账号密码登录 发布:2025-01-11 10:30:56 浏览:938
mysql在linux下安装 发布:2025-01-11 10:30:49 浏览:845
数据库copy 发布:2025-01-11 10:26:06 浏览:534
unity清理缓存 发布:2025-01-11 10:25:23 浏览:468