999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C程序設計下整數取值范圍的擴充和運算的改進

2016-10-10 07:36:46郭建軍
長治學院學報 2016年2期
關鍵詞:程序

郭建軍

(長治學院計算機系,山西長治046011)

?

C程序設計下整數取值范圍的擴充和運算的改進

郭建軍

(長治學院計算機系,山西長治046011)

文章介紹了在C語言程序設計中整數取值范圍擴充的方法,并對擴充后整數參加的加、減、乘、除、求余數運算進行了相應的改進,利用改進的運算,可以求解數據取值超出C語言環境規定范圍的問題。

整數;擴充;運算;改進;

1 引言

目前,C語言已經成為大多數程序設計者必須掌握的一種程序設計語言。通過系統的學習,既可掌握程序設計的基本算法、編程方法等內容,也可通過程序設計的方法去解決一些具體的問題。但不同的程序設計系統都有自身規定,在C語言程序系統下對整數的運算和取值范圍就有嚴格的規定,如果在程序設計中整數的取值超出規定范圍或運算后的值超規定范圍,運算的結果就會出現異常。如果在處理實際問題時,整數的取值超出規定范圍,就需要對整數取值進行擴充,對參加的運算進行改進,才能得到正確的結果。

2 加1 與減1 的變化

在C語言程序設計系統下,整數存儲所占空間的大小是用字節數來表的,如VC++6.0下整型int 為4個字節,即32位的二進制數。因為占用內存空間的字節數是固定的,所以整型int的取值范圍也是固定的。經過二進制數轉換為十進數的運算,可計算出整型int的取值范圍為-2147483648~2147483647[1],無符號整型unsigned的取值范圍為0~4294967295[1]。下面程序的執行結果變化就是整數運算結果超過取值范圍而造成的。

程序1:負整數加-1變正整數,正整數加1變負整數。

程序執行結果為:x=-2147483648[2],y=2147483647

程序2:無符號整數加1變0,無符號整數0減1變正數。

程序執行結果為:x=0,y=4294967295[2]

以上第一個程序中變量x,y的取值,恰好是整型int的最大值和最小值,第二個程序中變量x,y的取值,恰好是無符號整型unsigned的最大值和最小值。在進行加1和減1運算后,運算的值超過了規定的范圍,因此才有了上面程序執行后的輸出結果。

3 整數取值范圍擴充

在處理具體問題時,如果用到的整數比較大,肯定會超出C語言程序設計環境下規定的范圍,如果不對數據取值范圍進行擴充,不對數據參加的運算作相應的改進,計算的結果就會異常,即程序運行輸出錯誤的結果,實際問題得不到解決。

3.1整數取值范圍的擴充

C語言程序設計下的構造型數據類型數組[3],一經定義,數組中的元素有統一的數據類型,且占有連續的存儲單元,可用下標引用元素。由于數組具有這些特點,所以可用數組擴充整數的取值范圍。程序中定義字符型一維數組和整型一維數組,定義多少個元素,就可存放多少位數,用整體輸入字符串的函數gets()從鍵盤一次輸入一個整數,存入字符型數組中。為了使保存在字符串中的整數能參加運算,還需經過字符變數字的轉換[3],然后存放到一維整型數組中,其中用下標為0的元素存放個位上的數字,下標為1的元素存放十位上的數字,以此類推。

3.2數字字符串轉換為整數程序段

通過以上程序段,可以把數字字符串表示的整數轉換為數字,并按下標為0的元素存放個位上數字的規律存入一維整型數組中。

4 整數運算的改進

把字符型的一維數組轉換為整數后,相等于把一個整數的各位數字進行了分離,利用C語言程序設計環境提供的+、-、*、/、%基本算術運算,對各位數字做相應的運算,就可對整數的加、減、乘、除、求余數運算進行改進。

4.1加減法運算的改進

以計算機組成原理中二進制數全加器設計原理為基礎[2],可對整數加法進行擴充。因整數中的各位數字分別存放在相應的下標變量中,各位相加時,用一個變量記錄向上進位的數字,上一位相加時,要加上向上進位的數字,其實就是用數組元素模擬傳統的豎式計算兩個整數的加法。

加法運算改進程序段:

有了加法運算的程序,在此基礎上很容易擴充減法運算,只是在對應的位上數字不夠減時,要考慮向高一位借位。如高一位是零時,還需向該位的高一位借位,直到借到不是零的高位,這樣一位一位地減,最后完成兩個數的減法運算,與加法運算一樣,也是用數組元素模擬傳統的豎式來計算減法。

加法和減法運算改進后,為乘法的運算的改進打下了基礎,由于篇幅有限具體的方法和實現運算的程序這里不再贅敘。

4.2求除法、余數運算方法的改進

求除法、余數運算的方法比較特殊,以求余數為例,是從被除數的高位起來求余數。如求4147被3除的余數,從最高位開始,4被3除余1,然后借位給低位,下一位是1,加上高一位的借位就是1× 10+1=11,11被3除余數是2,繼續借位給下一位4,加上高一位的借位就是2×10+4=24,24被3除余數是0,繼續借位給下一位7,加上高一位的借位就是0×10+7=7,7被3除余數是1,因為7是最后一位,沒有借位了,最后的余數1就是4147被3除的余數。以上求余數的過程,通過編程,完全可以實現。

求余數運算改進程序段:

上述求余數的計算過程中,如果把每一步求余數時所得的商按從高位到低位存入一個整型數組中保存起來,就可得到兩個整數相除所得的商,實現除法運算,一舉兩得。

5 結束語

程序是計算機的靈魂,雖然程序設計語言環境提供的一些內容是受限制的,但程序設計方法是靈活和多樣的。只要善于應用程序設計語言下的各種數據表示形式,再與相應的算法相結合,就能編寫出解決實際問題的程序,使得在程序設計下類似于加1與減1的計算結果變得不再那么神秘和不可思議。

[1]顏盟盟.Visual C++從入門到精通.[M].第1版.北京:化學工業出版社,2009-08.21-22.

[2]袁春風.計算機組成與系統結構.[M].第1版.北京:清華大學出版社,2010-04.37-36,78-79.

[3]田淑清.全計算機等級考試二級教程—C語言程序設計[M].第1版.北京:高等教育出版社,2013-05.68-69,141-143.

(責任編輯張劍妹)

TP391

A

1673-2014(2016)02-0064-03

2015—11—07

郭建軍(1957—),男,山西長治人,副教授,主要從事計算機應用開發研究。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 国产手机在线小视频免费观看| 欧美在线伊人| 在线观看免费国产| 色视频国产| 日韩在线观看网站| 91蝌蚪视频在线观看| 色悠久久久久久久综合网伊人| 精品91自产拍在线| 亚洲色图狠狠干| 日韩欧美国产三级| 欧美三级日韩三级| 亚洲国内精品自在自线官| 国产成人精品第一区二区| 少妇高潮惨叫久久久久久| 精品三级在线| 国内毛片视频| 美女无遮挡免费网站| 亚洲第一国产综合| 黄色三级毛片网站| 亚洲中久无码永久在线观看软件| 在线播放91| 好吊色国产欧美日韩免费观看| a亚洲视频| 国产精品冒白浆免费视频| 性网站在线观看| 啪啪永久免费av| 麻豆精选在线| 2021无码专区人妻系列日韩| 色天天综合久久久久综合片| 久久久亚洲色| 久久精品91麻豆| 日韩精品资源| 伊在人亚洲香蕉精品播放 | 日本一本正道综合久久dvd| 亚洲人成亚洲精品| 免费高清毛片| 亚洲AV色香蕉一区二区| 国产三级视频网站| 亚洲精品日产精品乱码不卡| 美女扒开下面流白浆在线试听| 色亚洲激情综合精品无码视频 | 免费日韩在线视频| 国产三级韩国三级理| 欧美第九页| 亚洲色精品国产一区二区三区| 欧美午夜在线播放| 97亚洲色综久久精品| 免费观看男人免费桶女人视频| 国产精品自拍露脸视频| 成人字幕网视频在线观看| 日韩国产亚洲一区二区在线观看| 日韩欧美高清视频| 久久精品电影| 亚洲一区二区在线无码| 欧美在线综合视频| 视频一区视频二区中文精品| 午夜精品一区二区蜜桃| 久久精品人人做人人爽| 精品无码专区亚洲| 这里只有精品在线| 亚洲第一成年人网站| 国产国语一级毛片| 国产在线视频自拍| 在线人成精品免费视频| аv天堂最新中文在线| 波多野结衣中文字幕一区| 丁香六月激情综合| 国产jizz| 一本大道无码高清| 久久精品国产电影| 国产va在线观看免费| 久久久噜噜噜| 欧美精品v欧洲精品| 国产电话自拍伊人| 精品无码一区二区三区在线视频| 国产v精品成人免费视频71pao| 亚洲首页在线观看| 91久久青青草原精品国产| 国产成人综合在线观看| 日韩欧美中文字幕一本| 国产精品久线在线观看| 综1合AV在线播放|