zoukankan      html  css  js  c++  java
  • 数据的表示(一)——0与1

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

    ①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来捕获这些异常

  • 相关阅读:
    小总结下iphone开发环境搭建过程!
    Raspberry Pi之旅 【序】
    linux虚拟机中配置samba的实现文件共享的方法
    编写高质量的代码1尽量使用StringBuilder
    ArcEngine开发点滴1
    开源Firebird .NET Provider V0.9.0.0发布
    .NET的Ant构建系统 NAnt 0.91发布!
    iis7.5 发布rest服务,put请求返回404错误 解决方法
    COM学习笔记(1)
    2004年南京美食地图 [转载]
  • 原文地址:https://www.cnblogs.com/yimengxianzhi/p/7801926.html
Copyright © 2011-2022 走看看