工控玩家
澧縣電氣自動化
級別: 家園常客
|
這個程序我分別監控D0和D1 。怎么D0=-32767,D1=0我試了很多,大于32767(二進制的15個1)的數,D0都為負數,D1都為0,這是為什么?望高手能給解答。 |
---|---|
|
工控玩家
澧縣電氣自動化
級別: 家園常客
|
我試過了,只要低“字”的最高位不為1,顯示就沒問題。這個位就不應是符號位了呀。怎沒人發表看法呢? |
---|---|
|
王銳
向大家學習
級別: 工控俠客
|
一個數據寄存器最大值是32767 若你再加肯定為負 假設傳個-1到D0中去 那么實際D0中值應是32767加上32768減去1的值再加上1 由于32767+1等于-32768因此還需在加1 |
---|---|
|
chenlf
級別: 家園常客
|
低“字”的最高位32位監控時當然不是符號位,但你把它當成16位數來監控它就是符號位了,低“字”的最高位為1,當然它就是負數了。 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
D1為0,是因為設置的數還不夠大~~大于65535時就能看到D1的數值變化了。 |
---|---|
|
chenlf
級別: 家園常客
|
低“字”的最高位32位監控時當然不是符號位,但你把它當成16位數來監控它就是符號位了,低“字”的最高位為1,當然它就是負數了。 要超過16個1,也就是11111111111后高位數才開始顯示數據,低位數就是負數了。 |
---|---|
|