数据类型转换是我们从小学就开始学习的内容,只不过在小学我们称为单位换算。比如一条狗加一匹马等于是多少呢?总不是两条狗或两匹马吧。我们需要把单位转为都可以计算的单位,比如动物。结果就是两只动物。这样的转换,我们称为数据类型转换。
在C#中数据类型转换又分为隐式转换和显式转换。隐式转换是默认的转换,而显式转换就是必须明确说明的转换。
比如¥1+$1的问题,在国际贸易结算中,默认将人民币转换为美元,那计算的结果是¥1+$1=$1.14。但如果在国内贸易结算,就需要明确说明用什么货币基准来转换,如果转为人民币的话就是¥1+$1=¥8。
这两个案例都很明确的说明,在数值的计算过程中,需要单位统一,在软件的开发过程中叫做数据类型一致。
在C#中对数值类型的数据转换规定
数据容量小的类型转换为数据类型大的类型,是隐式转换,其变量中存储的数据值不会受到任何影响和变化。
数据容量大的类型转换为数据类型小的类型,是显式转换,如果远数据中存储的实际值大于目标类型能存储的值范围,则会发生值受损。显式转换又叫强制类型转换。
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->staticvoidMain(string[]args)
{
inti=int.MaxValue;
longl=i;//隐式转换目标类型=源类型值
i=(int)l;//显式转换目标类型=(源类型)源类型值
System.Console.WriteLine(i);
l=long.MaxValue;
i=(int)l;
System.Console.WriteLine(i);
}
上述代码首先将int的最大值保存在int类型的i中,又将i的值赋值给了long类型的l。由于long类型能存储的范围远远大于int,因此存放在long类型中的值不会受损。
又将l存储的值赋值为i,虽然这个时候l中保存的具体值不超过int的范围,但long类型比int类型大(你可以想象long的盒子比int的盒子大,大盒子哪怕放了一个小东西,但大盒子所占据的空间还是比小盒子大),所以要求显式转换。不过由于具体存的值够int存储,所以值没有受到影响。
最后一次,我们把long类型的最大值赋值为l,又把l赋值为i,int显然没有足够的空间存储赋予的值,这个时候i中的值是多少呢?-1。
为什么是-1?我们来看以下的经典转换
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->byteb=200;
b=(byte)(b+100);
System.Console.WriteLine(b);
第二行中100是字面量,所以的整数的字面量默认是int类型。byte类型容量小于int类型,应此byte+int的类型转换是将byte显式转换为int,然后两个int类型之和为int,将相加后的值赋值给byte类型的b,就必须要强制类型转换。
得到的结果是44。byte类型的最大值是255,并且从0开始存储。(b+100)超过byte最大值45。结果是44就说明当给予的值超过了当前类型能存储的范围,则C#默认从0重新开始存放值。
对b赋值写成以下格式,不需要显示的声明类型转换,因为+=是赋值运算符。
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->byteb=200;
b+=100;
System.Console.WriteLine(b);
分享到:
相关推荐
十进制012345678910111213141516二进制0110111001011101111000100110101011110011011110111110000八进制01234567101112131415161720十六进制0123456789ABCDEF10进制转换成十进制的例子:二进制:1001 = 1×23?...
有时候需要对数据内置的类型进行转换,在进行数据类型的转换时只需要将数据类型作为函数名即可,在Python中内置了一些数据类型转换的函数: 1. int()函数 int() 函数用于将一个字符串或数字转换为整型。 语法:int(x...
PS:转换过程中,如果其他问题请自行处理。考虑清楚后在使用。 1、版本范围:T+12.0以上版本;...2,修复问题:当T+数据有多个年度,并且第一年的起始月份大于一月时,导致的转换后U8现金流量数据缺失的问题
流向发电将Flow注释转换为TestCheck生成器以进行随机测试动机阅读演示? 正在安装yarn add babel - plugin - transform - flow - to - gen 并将其添加到您的.babelrc { " presets " : [ " es-2015 " ], " plugins " ...
1.06μm激光激发时ZnWO4:Tm3+的上转换发光和SRS,臧竞存,郑锴,该方法采用丘克拉斯基法生长出ZnWO4:Tm3+单晶,根据吸收光谱和荧光光谱,计算了ZnWO4晶体中Tm3+离子的扎德-奥弗尔特参数:Ω2 =5.368×10-
数据类型:基本类型:数字number、字符串:string、布尔:boolean、null、undefined 引用类型:数组:array、对象:object、函数:function 转成数字对象:强类型、显示转换:强制转换成数字类型。Number() ...
{判断大写位置,可以继续增大到real类型的最大值,可是谁有那么多钱} case qianwei of -3:qianwei1:=‘厘‘; -2:qianwei1:=‘分‘; -1:qianwei1:=‘角‘; 0 :qianwei1:=‘元‘; 1 :qianwei1:=‘拾‘; 2 :qianwei1:=...
(1)128.8125+10110101.1011B+1F.2H = ( 101010101.101 ) B (2)287.68-10101010.11B+8E.EH =( 103.CE ) H (3) 18.9+1010.1101B+12.6H-1011.1001B = ( 36.525 ) D 7. 写出下列以补码表示的二进制数的真值: 1...
进制转换1.2是进制转换1.1的升级版本,可在二进制、十进制、十六进制之间互转。 1.2版相对于1.1版更新 1、优化二进制格式化显示。 2、增加十六进制格式化显示。 3、去掉多余的无用功能,精简优化代码,使编译后的...
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...
for j:=length(m) downto 1 do k:=k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+ d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2]; xTOd:=k; end; 调用: procedure TForm1.Button1Click(Sender: T...
收集整理了各种通过JAVASCRIPT编码解码工具 支持转换的有 \uXXXX \UXXXXXXXX &#DDDD; &#xXXXX; \xXX \OOO ...\U00006D4B\U00008BD5\U...5rWL6K+VQ1NETg==?= MIME + Quoted-printable =?UTF-8?Q?=E6=B5=8B=E8=AF=95CSDN?=
% 1: max=max(R,G,B) % 2: min=min(R,G,B) % 3: if R = max, H = (G-B)/(max-min) % 4: if G = max, H = 2 + (B-R)/(max-min) % 5: if B = max, H = 4 + (R-G)/(max-min) % 6: % 7: H = H * 60 % 8: if H , H...
Spark作为数据处理引擎,提供高性能的批处理和实时计算能力,对招聘数据进行清洗、转换和特征提取等操作。 招聘推荐:系统利用Spark的机器学习库(如MLlib)构建候选模型,通过对求职者的个人资料、工作经历、技能...
、(1)L(G6)={0,1,2,......,9}+ (2)最左推导: N=>ND=>NDD=>NDDD=>DDDD=>0DDD=>01DD=>012D=>0127 N=>ND=>DD=>3D=>34 N=>ND=>NDD=>DDD=>5DD=>56D=>568 最右推导: N=>ND =>N7=>ND7=>N27=>ND27=>N127=>D127=>0127...
for I := 1 to mLength - Length(Result) do Result := '0' + Result; end; { IntToDigit } function DigitToInt(mDigit: string; mScale: Byte): Integer; //返回进制表示转换成整数 ;mScale 指定多少进制 var I...
使用vcf2smc将您的VCF转换为SMC ++输入格式: $ smc++ vcf2smc my.data.vcf.gz out/chr1.smc.gz chr1 Pop1:S1,S2此命令将解析样本S1和S2的重叠群chr1数据,样本S1和S2是总体Pop1成员。 您应该为数据集中的每个独立...
TIA博途S7通用函数库LGF(包含数据类型转换+数据处理等)+使用说明(英文)
一、类型转换的方法和应该注意的问题:1.转换为布尔型:(1)用两次非运算(!):!!5 ==> true(2)用布尔型的构造函数:new Boolean(5) == > true值转换为布尔类型为false:0,+0,-0,NaN,””(空字符串),undefined,...
VC数据类型转换详解 VC数据类型转换详解