疑惑的編程問題
劉玉蓉
發(fā)布于2014-11-19 17:28
18
0
標(biāo)簽:
有一段程序是這樣的,在線監(jiān)控程序,在上一段中MW538的值為65395,而在下一段中MW538的值卻為-141,誰能告訴我這是為什么???
問題補充:
我看了一下,MW538在這兩段程序中間沒有被賦值及運算,也沒有使用 GO TO
圖片說明: 1,圖1 2,圖2
佳答案
MW538在兩段程序中被當(dāng)作不同數(shù)據(jù)類型的數(shù)據(jù)來使用,因此顯示的值不同。
在圖一中,MW538是當(dāng)作雙整型數(shù)據(jù)(32位)來操作的,65395在其取值范圍內(nèi),二進(jìn)制格式為1111 1111 0111 0011。
而在圖二中,MW538是被當(dāng)作整型數(shù)據(jù)(16)位來操作的,取值范圍是-32768到32767,65395超出32767的范圍,被顯示為負(fù)數(shù)(實際上是第十六位被當(dāng)作符號位處理了)-141,你可以用計算器轉(zhuǎn)換一下看看,二進(jìn)制格式還是1111 1111 0111 0011。