java 中無符號和有符號int的區別以及byte轉int


一、無符號和有符號的區別

  無符號數中,所有的位都用於直接表示該值的大小。其范圍為0-255,

  而有符號位最高位為符號位,所以其范圍為 -128-0-127

二、整形int 和byte 的關系

1 int =4 byte  1byte=8 bit

所以int 最大值為2的4*8-1次方 byte 最大值為2的1*8-1 

 

三、不同長度字節轉int 高字節在前

public static int bytes2Int(byte[] bytes )
  {
             //如果不與0xff進行按位與操作,轉換結果將出錯,有興趣的同學可以試一下。
            if(bytes.length==1){
                return bytes[0]&0xff;
            }else if(bytes.length==2){
                int int1=bytes[1]&0xff;
                int int2=(bytes[0]&0xff)<<8;
                return int1|int2;
            }else if(bytes.length==3){
                int int1=bytes[2]&0xff;
                int int2=(bytes[1]&0xff)<<8;
                int int3=(bytes[0]&0xff)<<16;
                return int1|int2|int3;
            }else if(bytes.length==4){
                int int1=bytes[3]&0xff;
                int int2=(bytes[2]&0xff)<<8;
                int int3=(bytes[1]&0xff)<<16;
                int int4=(bytes[0]&0xff)<<24;
                return int1|int2|int3|int4;
            }

      return -1;

         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM