友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VB2008从入门到精通(PDF格式英文版)-第24章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




                     testing code is important because; if the ponent implementation is altered; you need to rerun only  

                     the testing code to make sure everything works as it should。 



                    These three pieces of code have demonstrated a plete development cycle。 



           Testing the Addition of Two Very Large Numbers 



           The code and projects have been organized; but we’re missing some tests。 The current test  

            adds two simple numbers。 Another test could be to add two really big numbers; such as 2 billion  

            and 2 billion。  

                 The code to test the addition of two really big numbers is shown in Figure 2…11。 Add this to  

           Module1。vb in the TestCalculator project。 


…………………………………………………………Page 61……………………………………………………………

                                     CH A PT E R   2   ■    L E A R N I N G   A B OU T   。 N E T  N U M B E R   AN D   V A L U E   T Y P E S  39 



                          Addition result is 

                         stored in a variable 



                                                                                2 billion added to 2 billion 



  Public Sub TestReallyBigNumbers() 

      Dim total As Integer = Operations。Add(2000000000; 2000000000) 



      If (total  4000000000) Then 

          Console。WriteLine(〃Error found(〃 & total & _ 

                                 〃) should have been (4000000000)〃) 

      End If 

  End Sub 



                           Verification of addition is 4 billion    If there is an error; a string is built 

                                                                     using concatenation techniques 



Figure 2…11。  Testing the addition of two large numbers 



      The test to add two very large numbers is identical to the test to add two simple numbers;  

except for the numbers themselves。 The error message is handled a bit differently than in the  

previous code; in that it is built using concatenation techniques。 In the example; a string is  

concatenated with an integer with a string。 Visual Basic will automatically convert the integer  

into a string。 

      Often; you will write tests where the only real difference is the data itself; not the ramifica

tions of the data。 Do you think of adding two very large numbers (such as 2 billion plus 2 billion)  

and two smaller numbers (such as 2 plus 2) as different? No; because to humans; the major  

difference between 2 billion and 2 is a bunch of zeros; the result is either 4 billion or 4; which  

seems very trivial。 Yet with respect to a puter; 4 billion is very different from 4; as you’ll  

soon see。 

      Before you run the test; you need to add a call to it in the Main() method: 



    Sub Main() 

        TestSimpleAddition() 

        TestReallyBigNumbers() 

        Console。ReadKey() 

    End Sub 



      Now run the very large number test。 You will see the output shown in Figure 2…12。 

     What happened? The problem has to do with the addition of very large numbers that cause  

an overflow; which is a puter construct。 


…………………………………………………………Page 62……………………………………………………………

40        CH AP T E R   2   ■    L E A R N IN G   AB OU T   。 N E T  N U M B E R   A N D   V A L U E   T Y P E S  



           Figure 2…12。  Visual Basic Express highlighting the overflow error 



           Understanding Problems with Numeric Numbers 



           What you understand as numbers and what the puter understands as numbers are two  

           pletely different things。 As a child; you learn to count starting at 1 and ending at 100; which  

           you thought was a gargantuan number。 As you grew up; you learned about zero and numbers  

           less than zero。 Later; you advanced to studying fractions and decimal values。 

                Throughout all of this learning about numbers; you considered the number 1 and the  

           number 1。5 to be the same kind of thing—that is; numbers。 Yet to the puter; they are not  

           the same type of values。 

                The reason numbers are different to puters has to do with puter efficiency and  

           how the puter stores numbers。 For those who have learned the decimal system with place

           holders; you start counting at 0; continue to 9; and then the next number is a decimal increment  

           called 10。 The decimal system is originally accredited to the Babylonians; but they used a decimal  

           system that was sexagesimal (60 unique identifiers versus our decimal 10 unique identifiers)。  

           The puter has a similar counting scheme; except it is binary with only two unique identi

           fiers: 1 and 0。 puters have two unique identifiers because they signify two unique states:  

           on and off。 At the heart of a puter is a transistor that has the ability to distinguish between  

           on and off; there are no “sort of” on and “sort of” off states。  

                Figure 2…13 shows an example of how a puter would count to 7 using the binary system。 

                In theory; you could count until you die。 You have that ability because you are human and  

           have no limits on how high you can count。 A puter does have limits; such as random…access  

           memory (RAM); hard disk; and so on。 Specific numeric data types on a puter also have  

           limits on how high they can count。 For example; the Integer data type that we have been using  

           can count to only a specific number and can store only whole numbers。  

                Think of the different numeric data types as odometers。 Most car odometers have upper  

           limits of 1 million miles/kilometers。 Imagine adding 900;000 and 200;000 using an odometer。  

           The result would be 100;000; and not the 1。1 million that you expected。 This is exactly the  

           problem that we encountered when adding 2 billion and 2 billion。 


…………………………………………………………Page 63…………………
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!