int和byte之間的轉換
參考自:http://blog.csdn.net/nupt123456789/article/details/8047619
int型32位byte型8位
例如: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;
}
相關推薦
int和byte[]之間的轉換
有時候和C的程式通訊的時候,我們在封裝協議時,可能需要將Java裡的int值,轉換成byte[]後用socket傳送。所以我們需要將32位的int值放到4位元組的byte[]裡。 /** * int值轉成4位元組的byte陣列 * @param num * @r
int和byte之間的轉換
參考自: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# int和byte之間的互轉
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 int和string之間的轉換
一、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 圖片壓縮的一些小技巧,以及bitmap和byte[]之間的轉換
對於獲取到的圖片進行壓縮然後上傳,這個事情還是很重要的而且是很實用的。 public byte[] compressBitmap(Bitmap bitmap) { ByteArrayOutputStream baos = null; try {
關於JAVA中:int和byte的互相轉換
一、基礎概念: 1.原碼: 一個byte是一個位元組,一個位元組是由8個位組成。其中最高位是符號位,範圍就是127 ~ -128。 即:0111 1111~1111 1111 也就是說:0000 0001 代表的是1, 1000 0000 代表的是-128
string與int和char之間的型別轉換問題
**string字串轉化為int** ①: #include<stdlib.h> string a; cin >> a;//1111 int n1
C# Stream 和 byte[] 之間的轉換,字串可以轉換成byte[]
/* - - - - - - - - - - - - - - - - - - - - - - - - * Stream 和 byte[] 之間的轉換 * - - - - - - - - - - - - - - - - - - - - - - - */ /// <summary> /// 將
int和String相互轉換
public class Demo3_Integer { /** * * A:int -- String * a:和""進行拼接 * b:public static String valueOf(int i) * c:int -- Integer -- String
java中int與byte相互轉換
基礎內容簡介 在做轉換之前先要明確幾個簡單的概念。首先本文是以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實現String和byte[]的轉換
String s = "easonjim";//String變數 byte b[] = s.getBytes();//String轉換為byte[] String t = new String(b);//bytep[]轉換為String,支援傳遞編碼 1、
VC char和TCHAR之間轉換
char:計算機程式語言(c、c++、java、VFP等)中可容納單個字元的一種基本資料型別。TCHAR:為了滿足Unicode編碼,對char的擴充套件,即_T(“str”)表示TCHAR型別C++支援兩種字串,即常規的ANSI編碼(使用""包裹)和Unicode編碼(使用L
C int和BYTE互轉、字串轉十六進位制位元組陣列
//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