matengfei
攻人之過(guò)勿太嚴(yán),要思其堪受;教人以善勿過(guò)高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 736 個(gè)
工控威望: 1054 點(diǎn)
下載積分: 2482 分
在線時(shí)間: 207(小時(shí))
注冊(cè)時(shí)間: 2011-08-07
最后登錄: 2017-06-10
查看matengfei的 主題 / 回貼
樓主  發(fā)表于: 2012-08-27 16:18
把D0里的數(shù)據(jù)255進(jìn)行取反之后怎么會(huì)是-256,而不是-65280。把D0以十六位二進(jìn)制展開(kāi)前八位是1,后八位是0,取反后前八位是1,后八位是0。這樣把后八位的數(shù)值加起來(lái)是65280,又最高位是符號(hào)位所以為-65280。不知哪里錯(cuò)了,求高手指教。
matengfei
攻人之過(guò)勿太嚴(yán),要思其堪受;教人以善勿過(guò)高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 736 個(gè)
工控威望: 1054 點(diǎn)
下載積分: 2482 分
在線時(shí)間: 207(小時(shí))
注冊(cè)時(shí)間: 2011-08-07
最后登錄: 2017-06-10
查看matengfei的 主題 / 回貼
1樓  發(fā)表于: 2012-08-27 17:36
當(dāng)最高位為1時(shí),也就是負(fù)數(shù)。那么這個(gè)十六位二進(jìn)制數(shù)所代表的數(shù)值:所有為0位的數(shù)值相加再加1,然后乘以-1,而并非所有為1的位所代表的數(shù)值相加再乘以-1。當(dāng)所有位為0時(shí),D0=0,當(dāng)所有位為1時(shí),D0=-1,而并非最高位和最低位為1其他位為0時(shí),D0值為-1。詳見(jiàn)FX系列編程手冊(cè)。NEG求補(bǔ)指令的介紹。
matengfei
攻人之過(guò)勿太嚴(yán),要思其堪受;教人以善勿過(guò)高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 736 個(gè)
工控威望: 1054 點(diǎn)
下載積分: 2482 分
在線時(shí)間: 207(小時(shí))
注冊(cè)時(shí)間: 2011-08-07
最后登錄: 2017-06-10
查看matengfei的 主題 / 回貼
2樓  發(fā)表于: 2012-08-27 18:36
如D0=2,則用十六位(0-15)二進(jìn)制表示:0000 0000 0000 0010,也就是除第1位(從右向左分別為0-15位)為1,其他位0,取反后為1111 1111 1111 1101,這時(shí)除第1位為0外,其他位都為1。這時(shí)取反后的數(shù)值是多少呢?我們把上面的十六位二進(jìn)制數(shù)為0的位所代表的數(shù)值相加然后再加1,得到結(jié)果等于3,最高位為1,是負(fù)數(shù),所以D0取反后的數(shù)值等于-3。求補(bǔ):我們把求反后的十六位二進(jìn)制1111 1111 1111 1101加1得到:1111 1111 1111 1110,這時(shí)只有第0位為0,第0位代表的數(shù)值為1,1加1(計(jì)算它所代表的值)等于2。又因最高位為1,是負(fù)數(shù),所以1111 1111 1111 1110的值為-2,即D0的補(bǔ)碼等于-2。像1111 1111 1111 1110這樣給出一個(gè)最高位為1的十六位二進(jìn)制負(fù)數(shù),能比較容易的計(jì)算它代表的值:所有為0位的位所代表的數(shù)值相加再加1然后乘以-1。
matengfei
攻人之過(guò)勿太嚴(yán),要思其堪受;教人以善勿過(guò)高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 736 個(gè)
工控威望: 1054 點(diǎn)
下載積分: 2482 分
在線時(shí)間: 207(小時(shí))
注冊(cè)時(shí)間: 2011-08-07
最后登錄: 2017-06-10
查看matengfei的 主題 / 回貼
3樓  發(fā)表于: 2012-08-27 18:44
個(gè)人感覺(jué)和求相反數(shù)差不多:把十進(jìn)制數(shù)值乘以-1