<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    int型數據轉成byte數據時出現的問題

    Posted on 2008-08-06 11:47 stonebow 閱讀(2195) 評論(1)  編輯  收藏 所屬分類: JAVA遇到問題
     由于byte的表示范圍是-128127,如果使用下面方法轉換將會發生致命的錯誤:

    int num = 40000;

    byte first = num/256;

    byte second = num%256;

    這樣,只要firstsecond超過127,就會溢出,從而合并起來的int數值會和原數值不一致。

     

    int input2 = 130;

    byte a3 = (byte) input2;

    input2 = a3;

    System.out.println(input2);

    對于上述代碼,結果為-126,而不是開始的130,也是溢出的問題,所以一定要注意。

     

    解決方法:

    第一種:較為不徹底,對于正整數來說,可以除以127,從而使byte不會溢出

    第二種:轉化的時候按位操作,從而不使用強制轉化損失精度:

    // iSource轉為長度為iArrayLenbyte數組,字節數組的低位是整型的低字節位

    public static byte[] toByteArray(int iSource, int iArrayLen)

     {

             byte[] bLocalArr = new byte[iArrayLen];

             for ( int i = 0; (i < 4) && (i < iArrayLen); i++)

             {

                       bLocalArr[i] = (byte)( iSource>>8*i & 0xFF );

             }

             return bLocalArr;

    }  

    // byte數組bRefArr轉為一個整數,字節數組的低位是整型的低字節位

    public static int toInt(byte[] bRefArr)

     {

             int iOutcome = 0;

             byte bLoop;

            

             for ( int i =0; i<4 ; i++)

             {

                       bLoop = bRefArr[i];

                       iOutcome+= (bLoop & 0xFF) << (8 * i);

             }

             return iOutcome;

    }

    Feedback

    # re: int型數據轉成byte數據時出現的問題  回復  更多評論   

    2008-08-06 12:40 by stonebow
    這里面有個問題,就是bLoop & 0xFF的作用,如果不加的話結果會出錯。因為byte轉化為int的時候是按值相等傳遞,所以byte值為10000001的時候,對應的int為1111111111111…111110000001,這樣就會出現問題,這時候&0xFF就會只保留最后實際的8位了。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲av永久无码天堂网| 国产成人精品免费视频动漫| 成人免费看片又大又黄| 精品亚洲成a人片在线观看少妇| 99久久免费国产精品热| 亚洲一区精品伊人久久伊人| 美女视频黄频a免费| 亚洲成A人片在线观看中文| 日本亚洲欧美色视频在线播放| 最近免费中文字幕视频高清在线看 | 亚洲国产综合久久天堂| 女bbbbxxxx另类亚洲| 国产成人精品免费视频软件| 亚洲成a人无码亚洲成av无码| 在线观看免费毛片| 婷婷国产偷v国产偷v亚洲| 免费久久精品国产片香蕉| 欧亚一级毛片免费看| 综合亚洲伊人午夜网 | 亚洲欧洲日韩极速播放| 天天看免费高清影视| 精品亚洲成a人在线观看| 亚洲毛片网址在线观看中文字幕| 国产区在线免费观看| 久久久无码精品亚洲日韩蜜桃| 中文字幕免费在线播放| 亚洲成在人线av| 黄色免费网站网址| 亚洲人成电影网站免费| 免费女人18毛片a级毛片视频| 精品无码国产污污污免费网站国产| 国产亚洲AV无码AV男人的天堂| jjizz全部免费看片| 亚洲字幕AV一区二区三区四区 | 国产日韩成人亚洲丁香婷婷| 久久国产乱子伦免费精品| 亚洲一区二区三区高清不卡 | free哆拍拍免费永久视频| 国产无遮挡又黄又爽免费网站| 国产亚洲av人片在线观看| 国产一卡二卡四卡免费|