Article View: cn.comp.lang.java
Article #56Re: 请问Java中如何处理无符号型数据?
From: Davy Hawk
Date: Mon, 10 Sep 2007 10:12
Date: Mon, 10 Sep 2007 10:12
22 lines
1864 bytes
1864 bytes
哦。。。知道了,无符号右移: n >>>= i;
Davy Hawk wrote:
> 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:
<fc35c0$b4k$1@news.yaako.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!213.200.89.82.MISMATCH!tiscali!newsfeed1.ip.tiscali.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.cn99.com!news.yaako.com!not-for-mailReferences:
<fbvg5e$rgo$1@news.yaako.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 10d5a2,1e7fb507057583b1 X-Google-Attributes: gid10d5a2,public,usenet X-Google-Language: Chinese,UTF8 Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!213.200.89.82.MISMATCH!tiscali!newsfeed1.ip.tiscali.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.cn99.com!news.yaako.com!not-for-mail From: Davy Hawk <dave3068@gmail.com> Newsgroups: cn.comp.lang.java Subject: Re: 请问Java中如何处理无符号型数据? Date: Mon, 10 Sep 2007 18:12:54 +0800 Organization: Bentium Ltd. (CN99) Lines: 22 Message-ID: <fc35c0$b4k$1@news.yaako.com> References: <fbvg5e$rgo$1@news.yaako.com> NNTP-Posting-Host: 58.46.163.67 Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: news.yaako.com 1189419200 11412 58.46.163.67 (10 Sep 2007 10:13:20 GMT) X-Complaints-To: usenet@news.yaako.com NNTP-Posting-Date: Mon, 10 Sep 2007 10:13:20 +0000 (UTC) User-Agent: Thunderbird 2.0.0.7pre (X11/20070907) In-Reply-To: <fbvg5e$rgo$1@news.yaako.com>