吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4961|回复: 14

[C#] C#初级开发原创教程第三课 数据类型转换

[复制链接]
王尼玛 发表于 2014-10-7 01:07 | 显示全部楼层 |阅读模式

本帖最后由 王尼玛 于 2014-10-24 01:08 编辑

大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第三课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.

有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧
1.自动数据类型转换
问题:
某班第一次考试平均分91.89分,第二次比第一次增加2分,第二次平均分是多少?
我们来看这个实例,注意代码中的注释:
  1.             double firstAvg = 91.89;//第一次平均分
  2.             double secondAvg;//第二次平均分
  3.             int rise = 2;//增长的分数
  4.             secondAvg = firstAvg + rise;//自动类型转换
  5.             Console.WriteLine("第二次平均分是:" + secondAvg);//输出第二次的平均分
  6.             Console.ReadKey();
复制代码
程序运行的结果:
QQ截图20141007001046.png \
下面的话看似复杂,其实很好理解:
从代码中可以看出,double类型变量firstAvg和int类型变量rise相加后,计算的结果赋给一个double类型变量secondAvg,这时
就发生了自动类型转换。这个神秘的过程到底是什么呢?
规则一:
如果一个操作数为double类型,则整个表达式可提升为double类型
比如说:
int score = 80;
double newScore = score;
这里,int变量score隐式地自动转换为double类型变量.
规则二:
满足自动类型转换的条件.
两种类型要兼容,数值类型(整形和浮点型)互相兼容
目标类型大于源类型,double类型可以存放int类型数据,因为为double类型变量分配的空间宽度足够存储int型变量.
2.强制数据类型转换
事实上,自动类型转换并非所有情况下都有效.如果不满足上述条件,比如在必要时必须将double类型变量的值赋给一个int类型变量时,就需要强制
类型转换.
语法:
(数据类型)表达式
在变量前加上括号,括号中的类型就是你要强制转换成的类型.比如说:
  1.             double d = 34.5252;//声明一个值为34.5252的双精度类型变量
  2.             int b = (int)d;//强制将变量d转换为int类型
复制代码
我们再看一个实例:
去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的市场份额?
看看该如何解决这个问题:
  1.             int before = 20;//去年所占市场份额
  2.             double rise = 9.8;//增长的份额
  3.             //计算新的市场份额(double类型变量强制转换成int类型变量)
  4.             int now = before + (int)rise;//现在的份额
  5.             Console.WriteLine("新的市场份额是" + now);
  6.             Console.ReadKey();
复制代码
看看运行结果:
QQ截图20141007005524.png
从实例中可以看出,由于强制类型转换往往是从宽度大的类型转换成宽度小的类型,使数值损失了精度(如2.3变成了2,34.5353变成了34)

这节课就讲到这里,有不懂的地方可以留言给我.
大家喜欢本教程的话还请多多加分,这也是我继续做下去的动力!
谢谢大家


王尼玛C#初级开发原创教程目录:
1.C#初级开发原创教程第一课  Visual Studio 2013的安装
2.C#初级开发原创教程第二课 控制台的输出
3.C#初级开发原创教程第三课 数据类型转换
4.C#初级开发原创教程第四课 深入控制台应用程序
5.C#初级开发原创教程第五课 bool类型,关系运算符与if选择结构
6.C#初级开发原创教程第六课 复杂选择结构
7.C#初级开发原创教程第七课  循环结构(一)
8.C#初级开发原创教程第八课 循环结构(二)
9.C#初级开发原创教程第九课 数组
10.C#初级开发原创教程第十课 面向对象之类和对象
11.C#初级开发原创教程十一课 类的无参方法
12.C#初级开发原创教程十二课 带参数的方法(一)
13.C#初级开发原创教程第十三课 字符串的操作



评分

参与人数 15威望 +1 HB +50 THX +5 收起 理由
29590 + 1
消逝的过去 + 2
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
agan8888 + 1
h112233h456 + 1
ldljlzw + 1
ding520 + 1
playboy + 1
XiaoWeiSec + 1
许先生 + 5 + 1 积极评分从我做起,感谢!
Shark恒 + 10 你将受到所有人的崇拜!
方白 + 5 尼玛 天书啊
判官 + 5 + 1 尼玛,大神啊!
哎呦呦 + 5 + 1 尼玛 天书啊
Top丶邪少 + 1 + 10 + 1 尼玛,大神啊!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Top丶邪少 发表于 2014-10-7 01:08 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-7 02:21 | 显示全部楼层

{:6_169:}如此牛逼的教程,学习!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
哎呦呦 发表于 2014-10-7 02:24 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lqy1471 该用户已被删除
lqy1471 发表于 2014-10-10 17:07 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-10-10 17:08 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lqy1471 该用户已被删除
lqy1471 发表于 2014-10-10 17:12 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-10-10 17:20 | 显示全部楼层

lqy1471 发表于 2014-10-10 17:12
比如 ISO8859-1 转GB2312

可以试试System.Text.Encoding.GetEncoding方法,里面有很多参数,都是转码的
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Dean 发表于 2014-10-11 14:37 | 显示全部楼层

第三课完成,继续看下一课
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lqy1471 该用户已被删除
lqy1471 发表于 2014-10-17 07:51 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表