全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1163
推到 Plurk!
推到 Facebook!

unsigned type

尚未結案
Mummy
一般會員


發表:11
回覆:9
積分:4
註冊:2004-02-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-18 14:06:17 IP:61.220.xxx.xxx 未訂閱
Java byte, short, int, long etc. 都是signed type, 請問可否設成unsigned type ?? 如何做? 想要有 8Bit, 16Bit大小type可用??
solnone
中階會員


發表:2
回覆:97
積分:69
註冊:2003-05-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-11 22:44:38 IP:218.168.xxx.xxx 未訂閱
可以使用 char 為 16 bit
 
    char c = Character.MIN_VALUE;
    System.out.println((int)c); // 0
    c = Character.MAX_VALUE;
    System.out.println((int)c); // 65535
warke
一般會員


發表:19
回覆:32
積分:10
註冊:2004-09-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-17 09:30:01 IP:218.170.xxx.xxx 未訂閱
在java中,她的六種數字型態都是帶符號的。分別列舉如下:
  • byte:8位元的整數,(-2^7)~(2^7-1)。
  • double:64位元的浮點數。
  • float:32位元的浮點數。
  • int:32位元的整數,(-2^31)~(2^31-1)。
  • long:64位元的整數,(-2^63)~(2^63-1)。
  • short:16位元的整數,(-2^15)~(2^15-1)。
並不能設定成 unsign type。 而java的兩個unsign type分別是boolean和16位元的char,也因此solnone大大會建議你利用char來做。 須注意的是你可以存放值在char中,但是必須要注意他的範圍是0~65535。 附帶一提的是char在超出範圍的時候必須要做轉換的動作。而超出範圍雖然經過轉換後可以正常執行,但卻無法顯示出原本正確的數值。
public class t
{
        public static void main (String[] arg)
        {
                char a = 0x555;        //16進位值
                char b = 555;        //整數文字
                char c = (char) 65536;        //超出範圍,必須經過轉換。
                                                                //但是顯示時,因為會發生overflow的問題,所以會變成0。
                                                                //c-65535 = 0;
                char d = (char) -100;        //雖然為負值,但是經過轉換後仍然可以使用。
                                                                //但是顯示時,因為會發生overflow的問題,所以會變成65436。
                                                                //d 65536 = 65436
                //char e = -100;                //會發生錯誤:possible loss of precision。
                //char f = 65536;                //會發生錯誤:possible loss of precision。
                System.out.println((int)a);
                System.out.println((int)b);
                System.out.println((int)c);
                System.out.println((int)d);
        }
}
系統時間:2024-05-09 10:32:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!