程序员的数学第九章是什么意思

数据通常是用0、1、2、3、4、5、6、7、8、9这些数来表示,由这些数的不同组合表示现实生活中各种各样的数据。在我们的教育中,0给我们的第一直觉就是没有。那么0真的只是代表没有的意思吗?作为程序员,你可不能这么理解哦~

通过观察,我们可以发现

程序员的数学教科书:在程序中,数据0有哪些含义?

程序员的数学教科书:在程序中,数据0有哪些含义?

例如温度的0℃,并不代表没有温度,时间0点不代表没有时间。

我们来看一个小故事:

在数学王国里,胖子0与瘦子1常常为了谁大而争执不休。瞧!今天,这两个小冤家狭路相逢,彼此之间又展开了一场舌战。

瘦子1抢先发言:“哼!胖胖的0,你有什么了不起?就像100,如果没有我这个瘦子1,你这两个胖0有什么用?”

胖子0不服气了:“你也甭在我面前耍威风,想想看,要是没有我,你就只是一个光杆呢?”

“哟!”1不甘示弱,“你再神气也不过是表示什么也没有,看!1+0还不等于我本身,你哪点儿派得上用场啦?”

“去!1×0结果也还不是我,你1不也同样没用!”0针锋相对。

“你……”1顿了顿,随机应变道,“不管怎么说,你0就是表示什么也没有!”

“这就是你见识少了。”0不慌不忙地说,“你看,日常生活中,气温0度,难道是没有温度吗?再比如,直尺上没有我作为起点,哪有你1呢?”

“再怎么比,我始终比你大。”1信心十足地说。

听了这话,0更显得理直气壮地说:“嘿嘿,你的大小还得我说了算,我站你左边,你就成0.1,我站你右边你就是10。怎么样?

我可让你放大10倍,也可让你缩小10倍!”

眼看着胖子0与瘦子1争得脸红耳赤,谁也不让谁,

一旁观战的其他数字们都十分着急。

这时,9灵机一动,上前做了个暂停的手势:“你俩都别争了,瞧你们,1、0有哪个数比我大?”

“这……”胖子0、瘦子1哑口无言。

这时,9才心平气和地说:“1、0,其实,只要你们站在一块,不就比我大了吗?”

1、0面面相觑,半晌才搔搔头笑了。“这才对嘛!把自己的位置放正,就能起到应有的作用”。9语重心长地说。

从以上故事可看出以下两点:

  • 0并不表示什么都没有。

  • 数的大小与所处的位置有关系。

程序中的0

在电子技术中,0一般表示低电平,1为高电平。在逻辑计算中,0一般表示逻辑假(False),1为逻辑真(True)。

在数值运算中,0与平常数学中0的含义相同。

在程序中,数据0有什么含义呢?

1.未赋值的变量为0?

在不同的程序设计语言中,对于未赋值变量的处理不一样。

对于Basic类的程序语言,如QB(QuickBasic,简环QB)、VB(VisualBasic,简称VB),如果数值型变量未赋初值,则其初始值为0。例如,有以下VB程序代码:

Private Sub Test

Dim i As Integer

MsgbOX “变量 i=” & i, ,”变量初始值”

End Sub

在以上VB代码中,声明了变量i,但未对其进行赋值。

虽然未进行变量赋值初始化,但VB编译器会自动将这类数值型变量初始化为0。因此,执行以上代码将显示如图1-3所示的对话框。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-3

对程序员来说,VB对变量进行初始化的方式很讨人喜欢,变量声明后就可以使用。但是,在.NetFramework中,其处理方式又不相同,例如,以下是VB.

NET中的代码:

Private Sub Buttonl_Click(sender As System.Object,e As System.EventArgs)

_

Handles Buttonl.Click

Dim i

MSgBox(“变量 i=” & i,,”变量初始值”)

End Sub

以上代码并不会出错,但运行后得到的结果如图1-4所示。

从这个结果可看出,在VB.NET中,

如果变量使用之前未进行初始化,这时其值为空(并不为0)。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-4

其实,在VisualStudio开发环境中仔细观察代码,可看到在MsgBox函数中的变量i下方有一个波浪线,将鼠标指针指向变量i,可看到如图1-5所示的提示信息,提示变量i在赋值前被使用。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-5

对于C语言系列的程序设计语言(如C、C++、C#等),程序员就没那么幸运了,未初始化的变量编译器并不会将其初始化为0,

而且不同编译系统可能会采用不同的处理方式。例如,有如下的C#程序:

以上的C#程序是没办法编译通过的。在VisualStudio开发环境中可以看到变量i下方有一条波浪线,将鼠标指针移到变量i上,可看到如图1-6所示的错误提示信息,提示使用了未赋值的局部变量i。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-6

要想得到如图1-3所示的对话框,在C#中必须将变量i进行初始化,给变量赋值为0,修改后的代码如下:

private void buttonl Click(object sender, EventArgs e)

{

int i=0;

MessageBox.Show(string.Format(“变量 i={0}”, i),”变量初始值”);

}

而在Dev-CPP环境中编写以下C语言程序:

int main()

{

int i;

print(“变量 i=%d”,i);

getch();

return 0;

}

编译时不会提示错误,运行时则将显示类似图1-7所示的结果。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-7

虽然在程序中没有初始化变量i,但变量i却有一个值(图1-7中显示的是1976933940,下次运行该程序时可能又是另一个值),这是为什么呢?原来,在ANSIC中定义变量时,编译器将给该变量分配内存,但并不会将分配的内存初始化为0。这样,原来该内存区域中保存的是什么值,新指定的变量也就具有了什么值。在图1-7所示结果中,给变量i分配的内存中的值正好为1976933940,所以变量i也就具有了这个值。

2.数值0的类型转换

程序中经常会用到数据类型的转换,如将数值类型转换为字符串类型、将数值类型转换为布尔类型等。

将数值0转换为字符串0,这种转换很好理解,其显示的内容都是相同的0,只有在进行数值运算时才能体现出不同。

数值0转换为布尔类型是什么值呢?

在ANSIC中没有专门设置布尔类型,在进行逻辑运算时,将0值作为布尔值False,将非0值作为布尔值True。在C#中,定义了Boolean类型,数值0转换为Boolean类型时得到的结果为False,非0值转换为Boolean类型时得到的结果为True。

3.除以0异常

我们在小学就学过:0可以做被除数,但不可以做除数。在程序中,当除数为0时,将出现异常。例如,有以下C代码:

int main()

{

int Dividend,Divisor,Result;

Dividend = 8;

Divisor = 0;

Result = Dividend / Divisor;

printf(“%d/%d=%d”,Dividend,Divisor,Result );

getch();

return 0;

}

当执行以上代码时,由于除数Divisor为0,将产生一个严重的错误,导致程序不能继续运行,如图1-8所示。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-8

在程序执行中如果遇到这种异常,将导致程序中断,但这不是我们所希望的。

一个好的程序员应该考虑并处理程序中可能发生的各种异常,并捕获这些异常,然后给用户显示出一个友好的错误提示信息。不过,ANSI

C中并没有提供异常捕获机制,

因此需要程序员根据程序执行过程,主动去判断除数,以避免产生这种严重异常。例如,

可将以上代码修改为以下形式:

int main()

{

int Dividend,Divisor,Result;

Dividend = 8;

Divisor = 0;

if(Divisor==0){

printf(“除数不能为0!”);

}else{

result = Dividend / Divisor;

printf(“%d/%d=%d”,Dividend,Divisor,Result);

}

getch();

return 0;

}

编译执行以上程序,将得到如图1-9所示的结果,提示了“除数不能为0!”,程序并没有进入严重异常状态。

程序员的数学教科书:在程序中,数据0有哪些含义?

图1-9

在异常捕获方面,C++、C#就要方便得多。例如,C#定义了很多异常(也包括Divide By ZeroException异常),我们在程序中可以使用try…catch结构来捕获这些异常并进行处理。

(0)
上一篇 2023年1月17日 下午2:56
下一篇 2023年1月17日 下午2:59

相关推荐

  • 11月去环球影城怎么样

    11月是去环球影城的好时节。环球影城是一个著名的主题公园,位于新加坡的圣淘沙岛上。这里有各种受欢迎的游乐设施和活动,可以满足不同年龄段的游客需求。 11月是新加坡的淡季旅游季节之一…

    生活百科 2023年7月9日
    0
  • 完美世界诛仙技改说明(完美世界新端游诛仙世界怎么玩)

    青云门、鬼王宗、合欢派,天音寺是游戏《诛仙》最初的四大职业。人满为患的河阳城,东面是义庄,南面是梧桐,西面是草庙村,北面是神火教遗址,一切从杀猪开始。跟随小说剧情的主线任务,重复枯…

    2023年6月15日
    0
  • 三伏灸上午做好还是下午做好

    夏季是天气最炎热的季节,人们往往会感到疲惫不堪。因此,许多人选择了中医理疗方法来缓解疲劳,其中最受欢迎的就是三伏灸。然而,很多人对于三伏灸的具体时间存在疑问,究竟是上午还是下午做好…

    生活百科 2023年7月23日
    0
  • 今天北京最高温,北京历史最高温

    据中国天气网消息,今天(2月20日)14时43分,北京南郊观象台气温达到20℃,打破2月历史纪录,为1951年以来2月最暖的一天,也是首次在2月突破20℃。 根据北京市气象台14时…

    2023年2月10日
    0
  • 紫薇花可以养在家里吗

    本文目录 1.紫薇花的特点 2.紫薇花的栽培条件 3.紫薇花在家中的养护 4.总结 紫薇花,又名紫藤花、长春藤等,是一种极具观赏性的攀援植物。它有着美丽的花朵和优美的姿态。很多人都…

    生活百科 2023年10月6日
    0
  • 电话邮箱大全,国家生态环境部投诉电话及邮箱

    为有效解决群众身边的突出环境问题,2021年5月7日至6月7日,哈尔滨市将按照“政府主导、区县主体”原则,组织开展以“解民忧、纾民困、暖民心,我为群众办实事”为主题的群众环境信访受…

    生活百科 2023年4月16日
    0
  • 去广东海陵岛旅游怎么样(广东海陵岛好玩吗值得去吗)

    可以看下这个详细视频,很多人第一次过来不了解,避免采坑 海陵岛位于广东省的阳江市,享有”南方北戴河”和”东方夏威夷”之美称,被誉为一…

    2023年5月29日
    0
  • k神中速德怎么玩

    今天小编给大家带来3套K神的卡组,分别是:铺场德、动物园、中速猎。 铺场德 1银色侍从x2 1晶化师x2 1机械袋鼠x2 1萨隆铁矿监工x1 1橡果人x2 2愤怒x2 2野性之力x…

    2023年2月14日
    0
  • 去虾线要去壳吗

    虾是许多人喜爱的海鲜之一,但是在吃虾的时候,经常会遇到一个问题:去虾线要去壳吗?下面就来探讨一下这个问题。 首先,什么是虾线?虾线是虾的消化系统,位于虾的背部。如果不去除虾线,吃起…

    生活百科 2023年9月24日
    0
  • 安利的产品好用吗(安利产品带货直播)

    在我小学的时候我妈就接触安利 因为有的阿姨会给我妈妈介绍 说句实话我小时候特别讨厌安利 因为我妈会给我吃安利的儿童钙片 其中有一种特别难吃 现在还记得 瓶子上是一个大猩猩的图案 现…

    生活百科 2023年2月15日
    0

发表评论

登录后才能评论