c# 学习笔记 (1) 类型转换
类型转换
c#类型转换
显示类型转换
- 使用()进行显示转换
int lTemp = 0;float fTemp = 3.14f;//将float类型强制转换成int类型lTemp = (int)fTemp;
使用长类型给短类型赋值时,需要进行强制类型转换,使用短类型给长类型赋值时,不需要进行强制类型转换。
- 使用方法Parse进行显示转换
int lTemp = 0;//将数字类型的字符强制转换成int类型lTemp = int.Parse("123");
Parse方放可以将数字类型的字符强制转换为其他类型,不过需要注意,转换的字符一定要是数字字符,否则会抛出异常。
- 使用Convert类的方放进行显示转换
int lTemp = 0;//将数字类型的字符强制转换成int类型lTemp = Convert.ToInt32(6.5);
Convert类中的转换方放需要注意,在将浮点数强制转化为整形时,并不是完全按照四舍五入的,如果值两个数的中间值,则会得到偶数值,比如 Convert.ToInt32(6.5)会得到6,Convert.ToInt32(7.5)会得到8
- 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等格式,可以根据需要自行调整。
- string类型转化为Byte数组
string str = "0123456";Byte[] recvByteTemp = System.Text.Encoding.Default.GetBytes(str);
经过转换后 recvByteTemp == { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36};
注意:字符串结尾的 /0 并没有被转化到Byte数组中。
- 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) ,当然但是如果想要对齐或者同一大小写,需要后续处理。
Byte数组转化为16进制的string类型
string类型转化为16进制的string类型 时是将string类型转化Byte数组,然后将Byte数组再转化为16进制的string类型,因此参考上述 string类型转化为16进制的string类型 方法即可。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}
- Byte数组转化为Int32类型
byte[] bytes = new byte[] { 0x11, 0x22, 0x33, 0x44 };int temp = BitConverter.ToInt32(bytes, 0);
经过转换后 temp = 0x44332211;
- 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) 类型转换相关推荐
- 2016/1/4 学习笔记 数据类型转换 注释 语句
⑤ 数据类型转换 自动转换: 一般在算术运算过程中进行自 动转换为数字类型比较大的类型 由低级到高级转换 ...
- 【C++学习笔记】类型转换和跳转语句
一.类型转换 在C++语言中,如果两种类型由关联,那么当程序需要其中一种类型的运算对象时,可以用另一种类型的对象或值来替代,即如果如果两种类型可以相互转换(conversion),那么它们就是关联 ...
- javaScript学习笔记之类型转换
背景: JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: string number boolean object function symbol 3 种对象类型 ...
- 【C#编程基础学习笔记】4---Convert类型转换
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...
- 学习笔记:C++进阶【继承、多态、二叉树进阶、map和set、哈希、C++11、异常、智能指针、特殊类设计、C++的类型转换】
文章目录 前言 一.继承 1. 继承的概念及定义 1.1 继承的概念 1.2 继承的定义 1.2.1 定义格式 1.2.2 继承关系和访问限定符 1.2.3 继承基类成员访问方式的变化 2. 基类和派 ...
- 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符
Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...
- SV学习笔记—类型转换
1.静态转换 静态转换操作不对转换值进行检查,格式是type'(value): program test;initial begin$display("int'(42+1.1) is&quo ...
- opencv学习笔记8:类型转换
含义 图像转换;将图像从一种形式转换到另一种形式. 如: 彩色BGR转灰色 BGR-RGB 灰色-BGR - 彩色BGR转灰色 方法:cv2.cvtColor(a,cv2.COLOR_BGR2GRAY ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- DB2 XQuery学习笔记
DB2 XQuery学习笔记 DB2 9有一个新特性就是增加XML类型数据存储,操作这种数据最理想的方式就是通过XQuery来进行,XQuery是XML数据检索的标准,可以在W3C网站上查看其规范.但 ...
最新文章
- AngularJs中的directives(指令part1)
- ubuntu笔记:查看Ubuntu的包依赖关系
- Android小项目源码汇总
- Java A的新本地变量类型推断
- 串口服务器介绍及产品特点详解
- 1*2*...*1000的末尾有多少个0?(Java实现)
- 吉首大学第十届“新星杯”大学生程序设计大赛(暨新生网络同步赛)
- JQuery简要介绍(转)
- 数学建模——01规划 / 线性规划 (工具:matlab + lingo,算法:Folyd)
- 360手机:360手机刷机 救砖 Twrp、Root、Magisk、360N4S骁龙版、360N5、N5S、N6、N6Lite、N6PRO、N7、N7Lite、N7PRO、Q5、Q5Plus
- mysql数据库加密方法l_使用透明数据库加密
- 【题解】【PTA里的Python题库】7-1 身份证校验_python
- HEVC学习笔记(二)整体介绍
- API调用,淘宝天猫、1688、京东、拼多多商品页面APP端原数据获取
- C# MVC引用_ViewStart.cshtml,新页面如何清空Layout模板
- 罗曼 matlab,成年人简易钢琴教程100首
- 发送邮件工具类 - EmaiHelper
- 计算机毕业论文有必要建模吗,本科生真有必要写毕业论文吗
- VBA的CountIf错误:要求对象
- XMind思维导图安卓PC直装入门下载及常见问题解决教程