Java中无符号整数

Java中无符号整数
无符号数都可以用BigInteger来完成表现,他自身附带了很多计算方法,可以有效地完成无符号数的计算工作。
/**
     * 逆转字节数组
     * 
     * 
@param  b
     * 
@return
     
*/
    
private   static   byte [] reverse( byte [] b) {

        
byte [] temp  =   new   byte [b.length];
        
for  ( int  i  =   0 ; i  <  b.length; i ++ ) {
            temp[i] 
=  b[b.length  -   1   -  i];
        }
        
return  temp;
    }

    
/**
     * 读取无符号位的Short数,16位
     * 
     * 
@param  readBuffer
     * 
@return
     * 
@throws  IOException
     
*/
    
private   static   final  BigInteger readUnsignedShort( byte [] readBuffer)
            
throws  IOException {
        
if  (readBuffer  ==   null   ||  readBuffer.length  <   2 )
            
return   new  BigInteger( " 0 " );
        
//  处理成无符号数
         byte [] uint64  =   new   byte [ 3 ];
        uint64[
2 =   0 ;
        System.arraycopy(readBuffer, 
0 , uint64,  0 2 );
        
return   new  BigInteger(reverse(uint64));
    }

    
/**
     * 读取无符号位的长整数,64位
     * 
     * 
@param  readBuffer
     * 
@return
     * 
@throws  IOException
     
*/
    
private   static   final  BigInteger readUnsignedInt64( byte [] readBuffer)
            
throws  IOException {
        
if  (readBuffer  ==   null   ||  readBuffer.length  <   8 )
            
return   new  BigInteger( " 0 " );
        
//  处理成无符号数
         byte [] uint64  =   new   byte [ 9 ];
        uint64[
8 =   0 ;
        System.arraycopy(readBuffer, 
0 , uint64,  0 8 );
        
return   new  BigInteger(reverse(uint64));
    }


---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian

你可能感兴趣的:(Java中无符号整数)