数据的表示(一)——0与1

本文通过0与1的故事启示读者,探讨了0在程序设计中的意义及其与位置的关系。介绍了在电子技术、逻辑计算和数值运算中0的不同含义。讨论了不同编程语言中未赋值变量的处理方式,并对比了数值0在C与C#中的类型转换。最后,分析了除以0异常在C与面向对象语言中的处理机制。
摘要由CSDN通过智能技术生成

*《程序员的数学思维修炼》一书用一些小故事、小例子来引出一些我们初学编程时常遇到的困惑

 

①0与1故事的启发:(0和1都没有9大,但它俩站一块就比9大)

  0并不表示什么都没有

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

 

②程序中的0:

  在电子技术中:0一般表示低电平,1为高电平

  在逻辑计算中:0一般表示逻辑假(False),1为逻辑真(True)

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

  

  1.思考:未赋值的变量为0吗?

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

    对于Basi c类的程序语言(QB,VB等),其初始值为0。——对程序猿来说,这种初始化设置的方式很讨人喜欢,变量声明后就可以使用

    但在.Net Framework中,其值为空

    而对于C语言系列(C,C#,C++等),未初始化的变量编译器并不会将其初始化为0,而且不同编译系统可能采用不同的处理方式

  

  2.数值0的类型转换<此处初次提及了OOP和一般编程的一些不同之处——关于Boolean类型的定义,这让我想到在我刚开始接触OOP时的困惑,OOP和一般编程有何区别,也是我初学java时许多人问我这和C的思维方式有何不同我一直难以解释的问题,于是我在这里再次详细查询了一些文档资料,并将其整合在分类《我想》_随笔《初学者的困惑:OOP与一般编程的区别》中>

    数值0转化为字符串0很好理解,其显示的都是相同的0,只有在进行数值运算时才会体现出不同

    在ANSI  C中没有专门设置布尔类型,在进行逻辑运算时,将0值作为布尔值False,将非0值作为布尔值True

    在C#中,定义了Boolean类型,数值0转换为Boolean类型时得到的结果为False,非0张值转换为Boolean类型时得到的结果为True(面向对象语言一般定义了Boolean类型)

 

  3.除以0异常<此处再次提到OOP和一般编程的一些不同——异常的捕获处理>

    在C中如果直接将0作为除数运行编译,将产生一个严重的错误,导致程序不能继续运行,这不是我们所希望的,一个好的程序员应该考虑并处理程序中可能发生的各种异常,然后给客户一个友好的提示

    不过在ANSI  C中并没有提供异常捕获机制,因此需要手动执行过程,主动去判断,以避免这种严重异常

    而在异常捕获方面C++、C#就要方便得多,它们定义了很多异常(也包括DivideByZeroException异常),在我们的程序中可以用try……catch来捕获这些异常

 

转载于:https://www.cnblogs.com/yimengxianzhi/p/7801926.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值