🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.comp.lang.java
Article #55

请问Java中如何处理无符号型数据?

#55
From: Davy Hawk
Date: Sun, 09 Sep 2007 00:52
19 lines
1703 bytes
Java中没有无符号型但由于某种情况需要处理无符号型数据该怎么做?

比如:
32位无符号型整数 0xabcdef67 放在 int 型里,进行 >> 4位,将变成 0xfabcdef6。
也就是说 Java 里面对大于0x80000000的无符号型整数进行>>操作时只能自己进行
处理:
int	n = 0xabcdef67, i = 4;
boolean	flag = false;
if (n<0) {
	flag = true;
	n &= 0x7fffffff;
}
n >>= i;
if (flag) {
	n |= ((int)1<<(31-i));
}

不知道出了这种方式,是否还有其他办法处理无符号型整数?
我知道对于上面情况还可以把int扩展到long再处理,但如果是64位呢?
Technical Details
Message-ID: <fbvg5e$rgo$1@news.yaako.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!198.186.194.247.MISMATCH!news-out.readnews.com!news-xxxfer.readnews.com!panix!bloom-beacon.mit.edu!news.cn99.com!news.yaako.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 10d5a2,1e7fb507057583b1,start
X-Google-Attributes: gid10d5a2,public,usenet
X-Google-Language: Chinese,UTF8
Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!198.186.194.247.MISMATCH!news-out.readnews.com!news-xxxfer.readnews.com!panix!bloom-beacon.mit.edu!news.cn99.com!news.yaako.com!not-for-mail
From: Davy Hawk <dave3068@gmail.com>
Newsgroups: cn.comp.lang.java
Subject: 请问Java中如何处理无符号型数据?
Date: Sun, 09 Sep 2007 08:52:36 +0800
Organization: Bentium Ltd. (CN99)
Lines: 19
Message-ID: <fbvg5e$rgo$1@news.yaako.com>
NNTP-Posting-Host: 58.46.164.194
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.yaako.com 1189299183 28184 58.46.164.194 (9 Sep 2007 00:53:03 GMT)
X-Complaints-To: usenet@news.yaako.com
NNTP-Posting-Date: Sun, 9 Sep 2007 00:53:03 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.7pre (X11/20070907)