Article View: cn.comp.lang.java
Article #55请问Java中如何处理无符号型数据?
From: Davy Hawk
Date: Sun, 09 Sep 2007 00:52
Date: Sun, 09 Sep 2007 00:52
19 lines
1703 bytes
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-mailShow 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)