之前在写一个C++项目,作为参考的是一个C#项目,当时为了确定byte类型换成什么,查了一些别人的简介,多数人都认为使用 unsigned
char (uchar) ,但是经过测试,使用 uchar
需要做一些额外的处理,例如想转换成十六进制数值做输出的时候需要另外转换成整型或数值型才可。然后我就考虑,既然如此为何我不直接使用整型或数值型来存储呢……
后来证明,使用quint16 (ushort) 效果最佳。
然后我在浏览微软文档做回顾的时候,看到一份官方(C#)的数值转换表,虽然是在介绍显式隐式转换的,但是比较有参考价值,在这里记录一下。
隐式数值转换
下表显示内置数值类型之间的预定义隐式转换:
from | 到 |
---|---|
sbyte | short、int、long、float、double 或 decimal |
byte | short、ushort、int、uint、long、ulong、float、double 或 decimal |
short | int、long、float、double 或 decimal |
ushort | int、uint、long、ulong、float、double 或 decimal。 |
int | long、float、double 或 decimal |
uint | long、ulong、float、double 或 decimal |