您的位置:首页 > 编程语言 > C#

C# byte数组常用扩展浅析

2010-08-31 17:39 281 查看



C# byte数组常用扩展有哪些呢?C# byte数组常用扩展具体的实现实例是什么呢?那么这里我们就将介绍C#
byte数组常用扩展以及实现实例。

C# byte数组常用扩展是我们编程中经常会碰到的一些实用性很强的操作,那么C# byte数组常用扩展都有哪些呢?下面将列出并用实例演示常用八种情况。

C# byte数组常用扩展应用一:转换为十六进制字符串

public

static

string
ToHex(
this

byte
b)

{

return
b.ToString(
"X2"
);

}

public

static

string
ToHex(
this
IEnumerable<
byte
> bytes)

{

var sb =
new
StringBuilder();

foreach
(
byte
b
in
bytes)

sb.Append(b.ToString(
"X2"
));

return
sb.ToString();

}

第二个扩展返回的十六进制字符串是连着的,一些情况下为了阅读方便会用一个空格分开,处理比较简单,不再给出示例。

C# byte数组常用扩展应用二:转换为Base64字符串

public

static

string
ToBase64String(
byte
[] bytes)

{

return
Convert.ToBase64String(bytes);

}

C# byte数组常用扩展应用三:转换为基础数据类型

public

static

int
ToInt(
this

byte
[] value,
int
startIndex)

{

return
BitConverter.ToInt32(value, startIndex);

}

public

static

long
ToInt64(
this

byte
[] value,
int
startIndex)

{

return
BitConverter.ToInt64(value, startIndex);

}

BitConverter类还有很多方法(ToSingle、ToDouble、ToChar...),可以如上进行扩展。

C# byte数组常用扩展应用四:转换为指定编码的字符串

public

static

string
Decode(
this

byte
[] data, Encoding encoding)

{

return
encoding.GetString(data);

}

C# byte数组常用扩展应用五:Hash

//使用指定算法Hash

public

static

byte
[] Hash(
this

byte
[] data,
string
hashName)

{

HashAlgorithm algorithm;

if
(
string
.IsNullOrEmpty(hashName)) algorithm = HashAlgorithm.Create();

else
algorithm = HashAlgorithm.Create(hashName);

return
algorithm.ComputeHash(data);

}

//使用默认算法Hash

public

static

byte
[] Hash(
this

byte
[] data)

{

return
Hash(data,
null
);

}

C# byte数组常用扩展应用六:位运算

//index从0开始

//获取取第index是否为1

public

static

bool
GetBit(
this

byte
b,
int
index)

{

return
(b & (1 << index)) > 0;

}

//将第index位设为1

public

static

byte
SetBit(
this

byte
b,
int
index)

{

b |= (
byte
)(1 << index);

return
b;

}

//将第index位设为0

public

static

byte
ClearBit(
this

byte
b,
int
index)

{

b &= (
byte
)((1 << 8) - 1 - (1 << index));

return
b;

}

//将第index位取反

public

static

byte
ReverseBit(
this

byte
b,
int
index)

{

b ^= (
byte
)(1 << index);

return
b;

}

C# byte数组常用扩展应用七:保存为文件

public

static

void
Save(
this

byte
[] data,
string
path)

{

File.WriteAllBytes(path, data);

}

C# byte数组常用扩展应用八:转换为内存流

public

static
MemoryStream ToMemoryStream(
this

byte
[] data)

{

return

new
MemoryStream(data);

}

C# byte数组常用扩展的八种情况就向你介绍到这里,希望对你了解和学习C# byte数组常用扩展有所帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: