C#中ASCII码学习心得

摘要:
1.调用ASCIIEncoding类实现各种转换。例如,简单的ACS代码和int转换。

1.利用调用ASCIIEncoding类来实现各种转换。如简单个ACS码和int转换。

***利用(int)ASCIIEncoding类对象.GetBytes(character)[0]得到整数;

public static int Asc(string character)
{
if (character.Length == 1)
{ System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0];
return (intAsciiCode);
}
else
{
throw new Exception("Character is not valid.");
}
}

****ASCIIEncoding类对象.GetString(byteArray);

public static string Chr(int asciiCode)
{
if (asciiCode >= 0 && asciiCode <= 255)
{
ASCIIEncoding asciiEncoding = new ASCIIEncoding();
byte[] byteArray = new byte[] { (byte)asciiCode };
string strCharacter = asciiEncoding.GetString(byteArray);
return (strCharacter);
}
else
{
throw new Exception("ASCII Code is not valid.");
}
}

//另一种写法
stringstr="abcd";
byte[] bytetest =System.Text.Encoding.Default.GetBytes(str.ToString());

有时候为了直观起见及机台(尤其做自动化设备的)需整体传送和解码的作用。

1.将字符转换为对应的ASCII:

string str = textBox1.Text.Trim();   // 去掉字符串首尾处的空格
char[] charBuf = str.ToArray();    // 将字符串转换为字符数组
ASCIIEncoding charToASCII = new ASCIIEncoding();
byte[] TxdBuf = new byte[charBuf.Length];    // 定义发送缓冲区;
TxdBuf = charToASCII.GetBytes(charBuf);    //转换为各字符对应的ASCII

2、将ASCII转换为对应字符:

byte[] RxdBuf = new byte[len];   // 定义接收缓冲区;

for(int i = 0; i < len; i++)

{

ASCIIEncoding ASCIITochar = new ASCIIEncoding();
char[] ascii = ASCIITochar.GetChars(RxdBuf);      // 将接收字节解码为ASCII字符数组
textBox1.Text += ascii[i];

}

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串
//十进制转二进制
Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));
//十进制转八进制
Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));
//十进制转十六进制
Console.WriteLine("十进制166的十六进制表示: "+Convert.ToString(166, 16));
//二进制转十进制
Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));
//八进制转十进制
Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));
//十六进制转十进制
Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16));

2.在串口通讯过程中,经常要用到 16进制与字符串、字节数组之间的转换
//

private string StringToHexString(string s,Encoding encode)
{
byte[] b = encode.GetBytes(s);//按照指定编码将string编程字节数组
string result = string.Empty;
for (int i = 0; i < b.Length; i++)//逐字节变为16进制字符,以%隔开
{
result += "%"+Convert.ToString(b[i], 16);
}
return result;
}
private string HexStringToString(string hs, Encoding encode)
{
//以%分割字符串,并去掉空字符
string[] chars = hs.Split(new char[]{'%'},StringSplitOptions.RemoveEmptyEntries);
byte[] b = new byte[chars.Length];
//逐个字符变为16进制字节数据
for (int i = 0; i < chars.Length; i++)
{
b[i] = Convert.ToByte(chars[i], 16);
}
//按照指定编码将字节数组变为字符串
return encode.GetString(b);
}

免责声明:文章转载自《C#中ASCII码学习心得》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇正式开工svn_linux + apache 实现网页访问svn下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】C#字符串连接的效率问题

C#字符串连接常用的四种方式:StringBuilder、+、string.Format、List<string>。 1.+的方式 string sql = "update tableName set int1=" + int1.ToString() + ",int2=" + int2.ToString() + ",int3=" + int3....

SystemProperties.get/set property_get/set

在java层设置系统属性要注意几点: 1 需要有系统权限。可以在AndroidManifest.xml添加android:sharedUserId="android.uid.system",并且通过系统签名来获取系统权限。 2 需要注意有几点,key的开头必须要符合property_perms中的定义规范,如下面的定义:一定要符合prefix,uid,gi...

1.golang数据类型,转换,变量类型检查,生命周期、闭包,打印方法,指针简介

golang是强类型,静态语言 1.golang 数据类型 布尔类型 true/false var b bool ,在golang底层bool不是1/0表示的 数值类型 :var i int =3 / var i:=3 数字在计算机内部是以二进制的方式存储的,二进制位就是一系列布尔值,取值要么为1,要么为0. 1位表示1或0,对于4位整数可以表示16个不同...

android 拍照上传照片

废话不多说,直接进入主题,想要在android中实现拍照最简单饿方法就是New 一个 Intent 设置Action为android.media.action.IMAGE_CAPTURE 然后使用startActivityForResult(intent,REQUEST_CODE)方法进入相机。当然还有很多方式可以实现,大家可以在网上查找。但是要注意的是在...

DataTable导出到Excel

#region DataTable导出到Excel /// <summary> /// DataTable导出到Excel /// </summary> /// <param name="pData">DataTable</param...

Java中InputStream输入流转String字符串的操作

目录 一、InputStream类中read方法 二、开源工具类IOUtils中toString方法 三、开源工具类CharStreams中toString方法 一、InputStream类中read方法 package com.zhiyin.test; import java.io.InputStream; public class MyT...