类型转换

c#类型转换

显示类型转换

  1. 使用()进行显示转换
     int lTemp = 0;float fTemp = 3.14f;//将float类型强制转换成int类型lTemp = (int)fTemp;

使用长类型给短类型赋值时,需要进行强制类型转换,使用短类型给长类型赋值时,不需要进行强制类型转换。

  1. 使用方法Parse进行显示转换
     int lTemp = 0;//将数字类型的字符强制转换成int类型lTemp = int.Parse("123");

Parse方放可以将数字类型的字符强制转换为其他类型,不过需要注意,转换的字符一定要是数字字符,否则会抛出异常。

  1. 使用Convert类的方放进行显示转换
     int lTemp = 0;//将数字类型的字符强制转换成int类型lTemp = Convert.ToInt32(6.5);

Convert类中的转换方放需要注意,在将浮点数强制转化为整形时,并不是完全按照四舍五入的,如果值两个数的中间值,则会得到偶数值,比如 Convert.ToInt32(6.5)会得到6,Convert.ToInt32(7.5)会得到8

  1. Byte数组转成string类型
 Byte[] recvByteTemp = new Byte[]{ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36};string str = System.Text.Encoding.ASCII.GetString(recvByteTemp);string str = System.Text.Encoding.Default.GetString(recvByteTemp) //该语句效果和上面语句相同
经过转换后 字符串str == "0123456";

注意 System.Text.Encoding.ASCII 为 recvByteTemp的编码格式,也可以通过System.Text.Encoding.Default.GetString(recvByteTemp)来进行转化,当然还有UTF8等格式,可以根据需要自行调整。

  1. string类型转化为Byte数组
 string str = "0123456";Byte[] recvByteTemp  = System.Text.Encoding.Default.GetBytes(str);
经过转换后 recvByteTemp == { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36};

注意:字符串结尾的 /0 并没有被转化到Byte数组中。

  1. string类型转化为16进制的string类型
//方法1
string str = "0123456\r\n";//字符串转BYTE数组
Byte[] recvByteTemp = System.Text.Encoding.Default.GetBytes(str);
string strToHex = "";//BYTE数组转十六进制字符串
for (int i = 0; i < recvByteTemp.Length; i++)
{//byte转化为 格式为大写的2位16进制字符串(不够两位的会右对齐,左边补0)strToHex += recvByteTemp[i].ToString("X2") + " ";
}//方法2
string str = "0123456\r\n";//字符串转BYTE数组
Byte[] recvByteTemp = System.Text.Encoding.Default.GetBytes(str);
string strToHex = "";for (int i = 0; i < recvByteTemp.Length; i++)
{//byte转化为 格式为大写的2位16进制字符串(不够两位的会右对齐,左边补0)strToHex += Convert.ToString(recvByteTemp[i], 16).PadLeft(2, '0').ToUpper() + " ";
}
经过转换后  strToHex  == "30 31 32 33 34 35 36 0D 0A ";

一般使用方法1即可,如果想要转化为其他进制的字符串,例如转化为10进制的字符串,方法1 recvByteTemp[i].ToString(“D”) ; 方法2 Convert.ToString(recvByteTemp[i], 10) ,当然但是如果想要对齐或者同一大小写,需要后续处理。

  1. Byte数组转化为16进制的string类型
    string类型转化为16进制的string类型 时是将string类型转化Byte数组,然后将Byte数组再转化为16进制的string类型,因此参考上述 string类型转化为16进制的string类型 方法即可。

  2. 16进制的string类型转化为Byte数组

 string str = "30 31 32 33 34 35 36 0D 0A ";//剔除空格string strNoSpace = str.Replace(" ", "");byte[] bytes = new byte[strNoSpace.Length / 2];for (int i = 0; i < strNoSpace.Length / 2; i++){bytes[i] = Convert.ToByte(strNoSpace.Trim().Substring(i*2, 2), 16);}
经过转换后  bytes == {48, 49, 50, 51, 52, 53, 54, 13, 10}
  1. Byte数组转化为Int32类型
byte[] bytes = new byte[] { 0x11, 0x22, 0x33, 0x44 };int temp = BitConverter.ToInt32(bytes, 0);
经过转换后  temp  = 0x44332211;
  1. Int32类型转化为Byte数组
int temp = 0x44332211;byte[] bytes = BitConverter.GetBytes(temp) ;
经过转换后  bytes = { 0x11, 0x22, 0x33, 0x44 };

隐式类型转换

隐式转换规则和C语言类似,在不同数据类型的(加、减、乘、除、取余以及符号运算)运算中,不同类型数招必须转换成同 一类型的数据才能运算,算术转换原则为: 整型提升:对于所有比int小的类型,包括char, signed char, unsigned char, short, unsigned short,首先会提升为int类型。 在进行运算时,以表达式中最长类型为主,将其他类型位据均转换成该类型,如:(1)若运算数中有double型或float型,则其他类型数据均转换成double类型进行运算。

c# 学习笔记 (1) 类型转换相关推荐

  1. 2016/1/4 学习笔记 数据类型转换 注释 语句

    ⑤ 数据类型转换 自动转换: 一般在算术运算过程中进行自 动转换为数字类型比较大的类型                                     由低级到高级转换             ...

  2. 【C++学习笔记】类型转换和跳转语句

    一.类型转换   在C++语言中,如果两种类型由关联,那么当程序需要其中一种类型的运算对象时,可以用另一种类型的对象或值来替代,即如果如果两种类型可以相互转换(conversion),那么它们就是关联 ...

  3. javaScript学习笔记之类型转换

    背景: JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: string number boolean object function symbol 3 种对象类型 ...

  4. 【C#编程基础学习笔记】4---Convert类型转换

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...

  5. 学习笔记:C++进阶【继承、多态、二叉树进阶、map和set、哈希、C++11、异常、智能指针、特殊类设计、C++的类型转换】

    文章目录 前言 一.继承 1. 继承的概念及定义 1.1 继承的概念 1.2 继承的定义 1.2.1 定义格式 1.2.2 继承关系和访问限定符 1.2.3 继承基类成员访问方式的变化 2. 基类和派 ...

  6. 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符

    Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...

  7. SV学习笔记—类型转换

    1.静态转换 静态转换操作不对转换值进行检查,格式是type'(value): program test;initial begin$display("int'(42+1.1) is&quo ...

  8. opencv学习笔记8:类型转换

    含义 图像转换;将图像从一种形式转换到另一种形式. 如: 彩色BGR转灰色 BGR-RGB 灰色-BGR - 彩色BGR转灰色 方法:cv2.cvtColor(a,cv2.COLOR_BGR2GRAY ...

  9. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  10. DB2 XQuery学习笔记

    DB2 XQuery学习笔记 DB2 9有一个新特性就是增加XML类型数据存储,操作这种数据最理想的方式就是通过XQuery来进行,XQuery是XML数据检索的标准,可以在W3C网站上查看其规范.但 ...

最新文章

  1. AngularJs中的directives(指令part1)
  2. ubuntu笔记:查看Ubuntu的包依赖关系
  3. Android小项目源码汇总
  4. Java A的新本地变量类型推断
  5. 串口服务器介绍及产品特点详解
  6. 1*2*...*1000的末尾有多少个0?(Java实现)
  7. 吉首大学第十届“新星杯”大学生程序设计大赛(暨新生网络同步赛)
  8. JQuery简要介绍(转)
  9. 数学建模——01规划 / 线性规划 (工具:matlab + lingo,算法:Folyd)
  10. 360手机:360手机刷机 救砖 Twrp、Root、Magisk、360N4S骁龙版、360N5、N5S、N6、N6Lite、N6PRO、N7、N7Lite、N7PRO、Q5、Q5Plus
  11. mysql数据库加密方法l_使用透明数据库加密
  12. 【题解】【PTA里的Python题库】7-1 身份证校验_python
  13. HEVC学习笔记(二)整体介绍
  14. API调用,淘宝天猫、1688、京东、拼多多商品页面APP端原数据获取
  15. C# MVC引用_ViewStart.cshtml,新页面如何清空Layout模板
  16. 罗曼 matlab,成年人简易钢琴教程100首
  17. 发送邮件工具类 - EmaiHelper
  18. 计算机毕业论文有必要建模吗,本科生真有必要写毕业论文吗
  19. VBA的CountIf错误:要求对象
  20. XMind思维导图安卓PC直装入门下载及常见问题解决教程

热门文章

  1. wp7中的fill_parent
  2. 什么是menuconfig和menuconfig的使用方法和技巧
  3. android中SELINUX规则分析和语法简介
  4. 最简android之wifi调试
  5. NDK 与 JNI 的关系
  6. S3C6410的SPI控制器
  7. swiper切换按钮位置改变_swiper插件自定义切换箭头按钮
  8. d3 力导向图 force graph
  9. java数据结构读书笔记--引论
  10. 修改mysql存储过程的权限调用权限 definer invoker