问题引出: string转换为byte(十六进制)

  static void Main(string[] args)
{
string str = "";
byte[] b = Encoding.Default.GetBytes(str);
for (int i = ; i < b.Length; i++)
{
Console.WriteLine(b[i]);
}
Console.ReadKey();
}

运行结果:

问题来了,为什么转化的结果是这个呢?48、53...是表示十进制还是十六进制呢?为什么不是0x00,0x05....或者是其他的....于是在网上搜查......

ASCII引出,在计算机,所有的数据在存储和运算都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

通过表可以看出,字符串转化为字节数组,是将每个字符转化为对应的ASCII码,在C#中(VS 2013)打印字符串都是打印的十进制,若想打印出十六进制的需对代码作微小变得。

 static void Main(string[] args)
{
string str = "";
byte[] b = Encoding.Default.GetBytes(str); for (int i = ; i < b.Length; i++)
{
Console.WriteLine(b[i].ToString("x2"));
}
Console.ReadKey();
}

运行结果:

ToString("x2") 为C#中的字符串格式控制符

x表示     十六进制 
2表示     每次都是两位数

这个结果输出的就是16进制的字符。

最新文章

  1. INFORMATICA 的调优之 INFORMATICA SERVER TUNING
  2. uva 10810
  3. C++11 并发指南------std::thread 详解
  4. spring beans的写入工具——spring-beans-writer
  5. js调用asp.net 后台属性值
  6. DBMS_SCHEDULER and DBMS_JOB
  7. SqlServer排序(null值,和非空值排列顺序)
  8. windows下php开发环境的搭建
  9. GCD下载图片
  10. BOM基础(二)
  11. Java并发基础——Thread
  12. 高性能消息队列 CKafka 核心原理介绍(上)
  13. Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】
  14. 17.QT-事件处理分析、事件过滤器、拖放事件
  15. Jmeter + Grafana搭建实时监控可视化
  16. 系统功能调用Windows操作系统原理实验
  17. php 的文件操作类
  18. ubuntu18.04下安装mysql后无法用mysqlworkbench访问
  19. Serv-u 备份处理
  20. Linux下使用mail发送邮件

热门文章

  1. vscode Variables Reference
  2. 转:浅谈Spectral Clustering 谱聚类
  3. [WC2005]双面棋盘
  4. [洛谷P2161][SHOI2009]会场预约
  5. spring任务执行器与任务调度器(TaskExecutor And TaskScheduler)
  6. Android View 绘制刷新流程分析
  7. 基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)
  8. 关闭nginx日志
  9. ASP.NET基础学习(暴力破解密码)
  10. maven中net.sf.json报错的解决方法(转载)