1. 程式人生 > >int和byte之間的轉換

int和byte之間的轉換

參考自:http://blog.csdn.net/nupt123456789/article/details/8047619

int32byte8

例如:int型別:97

則二進位制表示為:00000000 00000000 00000000 01100001

Java語言

/*將int轉為低位元組在前,高位元組在後的byte陣列
b[0] = 11111111(0xff) & 01100001
b[1] = 11111111(0xff) & (n >> 8)00000000
b[2] = 11111111(0xff) & (n >> 8)00000000
b[3] = 11111111(0xff) & (n >> 8)00000000
*/
public byte[] IntToByteArray(int n) {  
        byte[] b = new byte[4];  
        b[0] = (byte) (n & 0xff);  
        b[1] = (byte) (n >> 8 & 0xff);  
        b[2] = (byte) (n >> 16 & 0xff);  
        b[3] = (byte) (n >> 24 & 0xff);  
        return b;  
}
//將低位元組在前轉為int,高位元組在後的byte陣列(與IntToByteArray1想對應)
public int ByteArrayToInt(byte[] bArr) {  
         if(bArr.length!=4){  
             return -1;  
         }  
         return (int) ((((bArr[3] & 0xff) << 24)    
                    | ((bArr[2] & 0xff) << 16)    
                    | ((bArr[1] & 0xff) << 8)
| ((bArr[0] & 0xff) << 0)));   
}

Java語言

/*將int轉為低位元組在後,高位元組在前的byte陣列
b[0] = 11111111(0xff) & 01100001
b[1] = 11111111(0xff) & 00000000
b[2] = 11111111(0xff) & 00000000
b[3] = 11111111(0xff) & 00000000
*/
public byte[] IntToByteArray2(int value)   
{   
    byte[] src = new byte[4];  
    src[0] = (byte) ((value>>24) & 0xFF);  
    src[1] = (byte) ((value>>16)& 0xFF);  
    src[2] = (byte) ((value>>8)&0xFF);    
    src[3] = (byte) (value & 0xFF);       
    return src;  
}
//將高位元組在前轉為int,低位元組在後的byte陣列(與IntToByteArray2想對應)
public int ByteArrayToInt2(byte[] bArr) {  
         if(bArr.length!=4){  
             return -1;  
         }  
         return (int) ((((bArr[0] & 0xff) << 24)    
                    | ((bArr[1] & 0xff) << 16)    
                    | ((bArr[2] & 0xff) << 8)
| ((bArr[3] & 0xff) << 0)));   
}

byte之間互轉string

/** 
     * 將byte陣列轉化成String,為了支援中文,轉化時用GBK編碼方式 
     */  
    public String ByteArraytoString(byte[] valArr,int maxLen) {  
        String result=null;  
        int index = 0;  
        while(index < valArr.length && index < maxLen) {  
            if(valArr[index] == 0) {  
                break;  
            }  
            index++;  
        }  
        byte[] temp = new byte[index];  
        System.arraycopy(valArr, 0, temp, 0, index);  
        try {  
            result= new String(temp,"GBK");  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 將String轉化為byte,為了支援中文,轉化時用GBK編碼方式 
     */  
    public byte[] StringToByteArray(String str){  
        byte[] temp = null;  
        try {  
            temp = str.getBytes("GBK");  
        } catch (UnsupportedEncodingException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return temp;  
    } 


C++

void  IntToByteArray(int i,byte *bytes,int size = 4)  
  
{  
     //byte[] bytes = new byte[4];  
    memset(bytes,0,sizeof(byte) *  size);  
    bytes[0] = (byte) (0xff & i);  
    bytes[1] = (byte) ((0xff00 & i) >> 8);  
    bytes[2] = (byte) ((0xff0000 & i) >> 16);  
    bytes[3] = (byte) ((0xff000000 & i) >> 24);  
    return ;  
 }  
  
//byte轉int  
 int ByteArrayToInt(byte* bytes,int size = 4)   
{  
    int addr = bytes[0] & 0xFF;  
    addr |= ((bytes[1] << 8) & 0xFF00);  
    addr |= ((bytes[2] << 16) & 0xFF0000);  
    addr |= ((bytes[3] << 24) & 0xFF000000);  
    return addr;  
 }


相關推薦

intbyte[]之間轉換

有時候和C的程式通訊的時候,我們在封裝協議時,可能需要將Java裡的int值,轉換成byte[]後用socket傳送。所以我們需要將32位的int值放到4位元組的byte[]裡。 /** * int值轉成4位元組的byte陣列 * @param num * @r

intbyte之間轉換

參考自:http://blog.csdn.net/nupt123456789/article/details/8047619 int型32位byte型8位 例如:int型別:97 則二進位制表示為:00000000 00000000 00000000 01100001

Java初認識--基本資料型別(int byte之間賦值)預設值 型別強轉

主類和主方法 Test.java–是原始檔,原始檔必須與主類名(public class )保持一致,一個原始檔只能有一個主類 ,主方法存在與主類中。 Test.java 原始檔 主類:public class Test 主方法 : public static void main(Strin

Java初認識--基本資料型別(int byte之間賦值)預設值 型別強轉

主類和主方法 Test.java–是原始檔,原始檔必須與主類名(public class )保持一致,一個原始檔只能有一個主類 ,主方法存在與主類中。 Test.java 原始檔 主類:public class Test 主方法 : public stat

C# intbyte之間的互轉

1.方式一:手動位移      /// <summary>         /// int轉byte         /// </summary>         /// <param name="value"></param>

Stream byte[] 之間轉換

Stream 和 byte[] 之間的轉換 一. 二進位制轉換成圖片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStream(ms); ms.Close(); this.pict

C# Stream byte[] 之間轉換(檔案流的應用)

一. 二進位制轉換成圖片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStream(ms); ms.Close(); this.pictureBox1.Image 二. C#

java intstring之間轉換

一、int轉為String .兩種方法,一個是再int後面+“”,就可以轉為字串。 另一個, int i=12345; String s=""; 第一種方法:s=i+""; 第二種方法:s=String.valueOf(i); 這兩種方法有什麼區別呢?作用是不是一樣的呢?是不是在任何

C# Stream byte[] 之間轉換

tms 寫入 input pos oot 保存 class 設置 常用 一. 二進制轉換成圖片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStrea

Android 圖片壓縮的一些小技巧,以及bitmapbyte[]之間轉換

對於獲取到的圖片進行壓縮然後上傳,這個事情還是很重要的而且是很實用的。 public byte[] compressBitmap(Bitmap bitmap) { ByteArrayOutputStream baos = null; try {

關於JAVA中:intbyte的互相轉換

一、基礎概念: 1.原碼: 一個byte是一個位元組,一個位元組是由8個位組成。其中最高位是符號位,範圍就是127 ~ -128。 即:0111 1111~1111 1111 也就是說:0000 0001 代表的是1,    1000 0000 代表的是-128

string與intchar之間的型別轉換問題

**string字串轉化為int** ①: #include<stdlib.h> string a; cin >> a;//1111 int n1

C# Stream byte[] 之間轉換,字串可以轉換byte[]

/* - - - - - - - - - - - - - - - - - - - - - - - -   * Stream 和 byte[] 之間的轉換  * - - - - - - - - - - - - - - - - - - - - - - - */ /// <summary> /// 將 

intString相互轉換

public class Demo3_Integer { /** * * A:int -- String * a:和""進行拼接 * b:public static String valueOf(int i) * c:int -- Integer -- String

java中intbyte相互轉換

基礎內容簡介      在做轉換之前先要明確幾個簡單的概念。首先本文是以java為語言,以int為例子。 long資料型別在原理上是一致的。      1  int 在java中是32位, byte是8位。      2  原碼,反碼,補碼簡介        

Java日期字串之間轉換,自己封裝日期與字串轉換

一:日期與字串轉換 public class DateFormatDemo { public static void main(String[] args) throws ParseException { //日期轉換成字串 Date d = new Date(); Simple

java實現Stringbyte[]的轉換

String s = "easonjim";//String變數 byte b[] = s.getBytes();//String轉換為byte[] String t = new String(b);//bytep[]轉換為String,支援傳遞編碼 1、

VC charTCHAR之間轉換

                char:計算機程式語言(c、c++、java、VFP等)中可容納單個字元的一種基本資料型別。TCHAR:為了滿足Unicode編碼,對char的擴充套件,即_T(“str”)表示TCHAR型別C++支援兩種字串,即常規的ANSI編碼(使用""包裹)和Unicode編碼(使用L

C intBYTE互轉、字串轉十六進位制位元組陣列

//int 轉 4位元組 BYTE[], void intToByte(int i,BYTE abyte[])  { abyte[3] = (byte)(0xff & i); abyte[2] = (byte)((0xff00 & i) >>

JS時間戳時間之間轉換

一、時間轉換時間戳 var date =newDate();//時間物件var str = date.getTime();//轉換成時間戳 二、時間戳轉換為時間 1.轉換成 2015/7/18 下午4:50:43 格式: function getDate(tm){v