C# Byte
22618 ワード
Byte
を選択します.
範囲
サイズ
.NETタイプ
Byte
0~255
符号なしの8ビット整数
System.Byte
Byteは、値範囲が0(Byte.MinValue定数で示す)から255(Byte.MaxValue定数で示す)の符号なし整数を表す可変値タイプである.NET Frameworkには、-128から127までの範囲の値を表す記号付き8ビット整数値タイプも含まれています.byteタイプの範囲をバイナリに変換するのは00000000~11111です.byteタイプは占有スペースが小さく、1バイト、int型は占有スペースが大きく、4バイトです.データ量が小さい場合、違いは見えません.データ量が大きい場合、例えば60億人の年齢は、0~255の間に違いなく、intを使うと多くの空間が浪費されます.
Byte[]
1.C#Byte[]string変換
Byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );
stringstr = System.Text.Encoding.Default.GetString ( byteArray );
byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str );
string str = System.Text.Encoding.ASCII.GetString ( byteArray );
public static string ToHexString ( byte[] bytes ) // 0xae00cf => "AE00CF "
{
string hexString = string.Empty;
if ( bytes != null )
{
StringBuilder strB = new StringBuilder ();
for ( int i = 0; i < bytes.Length; i++ )
{
strB.Append ( bytes[i].ToString ( "X2" ) );
}
hexString = strB.ToString ();
}return hexString;
}
2.C#一般的なバイト配列byte[]切り取り
C#byte[]配列切り取り:
byte[] data= new byte[]{1,2,3,4,5,6,7,8,9};
BitConverter.ToInt16(data,3);// 2 ,3
BitConverter.ToInt32(data,3); // 4
BitConverter.ToInt64(data,3);// 8
切り取り数が不規則な場合:data.Skip(5).Take(3).ToArray(); //
data.Skip(4).ToArray(); //
3.C#byte[]配列コピー
(1)
byte[] data = new byte[]{0,1,2,3,4,5,6,7,8,9};
byte[] data1 = new byte[data.length];
for(int i=0;i<data1.length;i++){
data1[i] = data[i];
}
(2)すべてコピーbyte[] data = new byte[]{0,1,2,3,4,5,6,7,8,9};
byte[] data1 = new byte[data.length];
Array.Copy(data,data1,data.length);// data, data1, data.length
(3)すべてコピーbyte[] data = new byte[]{0,1,2,3,4,5,6,7,8,9};
byte[] data1;
data1 = (byte[])data .Clone();
(4)深度コピーbyte[] srcArray = new byte[] { 0x01, 0x02, 0x03, 0x04 };
byte[] dstArray = new byte[srcArray.Length];
// srcArray , 0, dstArray , 0, srcArray.Length
Buffer.BlockCopy(srcArray, 0, dstArray, 0, srcArray.Length);
4.C#byte[]配列削除
byte[] data = new byte[]{0,1,2,3,4,5,6,7,8,9};
(1)指定された位置数のデータを削除するArray.Clear(data,0,5); //data 0, 5
(2)指定したデータを削除–byte[]に戻るスペースの削減///
/// byte[] byte
///
/// byte[]
/// byte[] byte ( : byte cut = 0x00 ;)
///
public static byte[] ByteCut(byte[] b, byte cut)
{
var list = new List();
list.AddRange(b);
for (var i = list.Count - 1; i >= 0; i--)
{
if (list[i] == cut)
list.RemoveAt(i);
}
var lastbyte = new byte[list.Count];
for (var i = 0; i < list.Count; i++)
{
lastbyte[i] = list[i];
}
return lastbyte;
}
(3)クリアbyte[]byte[] data = new byte[50];
data = new byte[50];// new