Java 中没有无符号数,在读字节数组转换的时候需要注意溢出的情况

时间:2023-01-12 00:25:31
也许是我水 我搞了一天时间
http://blog.csdn.net/dengxu11/article/details/6677766

14 个解决方案

#1


先帮LZ顶个 。。。

#2


呵呵 我刚学Java不久,还不熟~

#3


任何东西都有利有弊吧

#4


引用 3 楼 dengxu11 的回复:
任何东西都有利有弊吧

呵呵,这句话赞成。

严格意义上说Java是有无符号数的,char就是无符号类型。
如果想形成无符号常数的话可以用0x..自己拼一个。想输出无符号数的话也可以用%x格式化。

变量就像一个盒子,你把数据放进去,之后怎么认知它里面的东西就看你从什么角度观察了。

#5


unsigned和非unsigned,内存存储一样的,只是非unsigned会把最高位看作是符号位,所以值的表现形式不一样,所以关键看你怎么想做什么。如果只是单纯的通信收信,那么是没什么问题的,如果是要把结果显示,那么就要进行相应的处理了。
unsigned int可以用long来表示其值。

#6


引用 4 楼 suwei2002 的回复:
引用 3 楼 dengxu11 的回复:

任何东西都有利有弊吧

呵呵,这句话赞成。

严格意义上说Java是有无符号数的,char就是无符号类型。
如果想形成无符号常数的话可以用0x..自己拼一个。想输出无符号数的话也可以用%x格式化。

变量就像一个盒子,你把数据放进去,之后怎么认知它里面的东西就看你从什么角度观察了。


赞同,对变量说的很透彻!~佩服下~!

#7


用long吧

#8


呵呵 楼上说的都对, 
to:suwei2002
    你说的对,刚做了实验 char确实是无符号的,多谢指点!

#9


引用 5 楼 qybao 的回复:
unsigned和非unsigned,内存存储一样的,只是非unsigned会把最高位看作是符号位,所以值的表现形式不一样,所以关键看你怎么想做什么。如果只是单纯的通信收信,那么是没什么问题的,如果是要把结果显示,那么就要进行相应的处理了。
unsigned int可以用long来表示其值。

恩,可以用long表示

#10


引用 9 楼 leehomwong 的回复:
引用 5 楼 qybao 的回复:

unsigned和非unsigned,内存存储一样的,只是非unsigned会把最高位看作是符号位,所以值的表现形式不一样,所以关键看你怎么想做什么。如果只是单纯的通信收信,那么是没什么问题的,如果是要把结果显示,那么就要进行相应的处理了。
unsigned int可以用long来表示其值。

恩,可以用long表示

那unsigned long用什么表示? double??

#11


学习了

#12


是的,从C转过来Java的要注意这一点
不过归根到底,long也好,unsigned int也好,都是定义了一个取值空间,在取值空间内就没事,超出空间就有事。透过现象看本质,万法归一

#13


引用 10 楼 suwei2002 的回复:
那unsigned long用什么表示? double??

如果只是存储,那么用long可以,如果要表示它的值,那就自己计算吧,可以用个数组来保存

#14


任何语言都要归于 0 1 0 1 0 1 0 1.........

#1


先帮LZ顶个 。。。

#2


呵呵 我刚学Java不久,还不熟~

#3


任何东西都有利有弊吧

#4


引用 3 楼 dengxu11 的回复:
任何东西都有利有弊吧

呵呵,这句话赞成。

严格意义上说Java是有无符号数的,char就是无符号类型。
如果想形成无符号常数的话可以用0x..自己拼一个。想输出无符号数的话也可以用%x格式化。

变量就像一个盒子,你把数据放进去,之后怎么认知它里面的东西就看你从什么角度观察了。

#5


unsigned和非unsigned,内存存储一样的,只是非unsigned会把最高位看作是符号位,所以值的表现形式不一样,所以关键看你怎么想做什么。如果只是单纯的通信收信,那么是没什么问题的,如果是要把结果显示,那么就要进行相应的处理了。
unsigned int可以用long来表示其值。

#6


引用 4 楼 suwei2002 的回复:
引用 3 楼 dengxu11 的回复:

任何东西都有利有弊吧

呵呵,这句话赞成。

严格意义上说Java是有无符号数的,char就是无符号类型。
如果想形成无符号常数的话可以用0x..自己拼一个。想输出无符号数的话也可以用%x格式化。

变量就像一个盒子,你把数据放进去,之后怎么认知它里面的东西就看你从什么角度观察了。


赞同,对变量说的很透彻!~佩服下~!

#7


用long吧

#8


呵呵 楼上说的都对, 
to:suwei2002
    你说的对,刚做了实验 char确实是无符号的,多谢指点!

#9


引用 5 楼 qybao 的回复:
unsigned和非unsigned,内存存储一样的,只是非unsigned会把最高位看作是符号位,所以值的表现形式不一样,所以关键看你怎么想做什么。如果只是单纯的通信收信,那么是没什么问题的,如果是要把结果显示,那么就要进行相应的处理了。
unsigned int可以用long来表示其值。

恩,可以用long表示

#10


引用 9 楼 leehomwong 的回复:
引用 5 楼 qybao 的回复:

unsigned和非unsigned,内存存储一样的,只是非unsigned会把最高位看作是符号位,所以值的表现形式不一样,所以关键看你怎么想做什么。如果只是单纯的通信收信,那么是没什么问题的,如果是要把结果显示,那么就要进行相应的处理了。
unsigned int可以用long来表示其值。

恩,可以用long表示

那unsigned long用什么表示? double??

#11


学习了

#12


是的,从C转过来Java的要注意这一点
不过归根到底,long也好,unsigned int也好,都是定义了一个取值空间,在取值空间内就没事,超出空间就有事。透过现象看本质,万法归一

#13


引用 10 楼 suwei2002 的回复:
那unsigned long用什么表示? double??

如果只是存储,那么用long可以,如果要表示它的值,那就自己计算吧,可以用个数组来保存

#14


任何语言都要归于 0 1 0 1 0 1 0 1.........