matengfei
攻人之過勿太嚴(yán),要思其堪受;教人以善勿過高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 737 個(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)制展開前八位是1,后八位是0,取反后前八位是1,后八位是0。這樣把后八位的數(shù)值加起來是65280,又最高位是符號(hào)位所以為-65280。不知哪里錯(cuò)了,求高手指教。
matengfei
攻人之過勿太嚴(yán),要思其堪受;教人以善勿過高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 737 個(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。詳見FX系列編程手冊(cè)。NEG求補(bǔ)指令的介紹。
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級(jí)別: VIP會(huì)員

精華主題: 3 篇
發(fā)帖數(shù)量: 6767 個(gè)
工控威望: 38368 點(diǎn)
下載積分: 2831 分
在線時(shí)間: 9503(小時(shí))
注冊(cè)時(shí)間: 2006-09-13
最后登錄: 2024-11-14
查看cvlsam的 主題 / 回貼
2樓  發(fā)表于: 2012-08-27 17:49
255的二進(jìn)制表示方法為:0000 0000 1111 1111
執(zhí)行了CML后,其值為 1111 1111 0000 0000

256的二進(jìn)制表示方法為:0000 0001 0000 0000
負(fù)數(shù),在PC中表示為其正數(shù)的補(bǔ)碼,也就是反碼+1
256的反碼為:1111 1110 1111 1111
那么補(bǔ)碼就是反碼+1,也就是1111 1111 0000 0000。

16位符號(hào)數(shù)據(jù)能表示的值域?yàn)?32768~+32767,那又怎么可能表達(dá)為-65280呢?

Good Luck~
matengfei
攻人之過勿太嚴(yán),要思其堪受;教人以善勿過高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 737 個(gè)
工控威望: 1054 點(diǎn)
下載積分: 2482 分
在線時(shí)間: 207(小時(shí))
注冊(cè)時(shí)間: 2011-08-07
最后登錄: 2017-06-10
查看matengfei的 主題 / 回貼
3樓  發(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
攻人之過勿太嚴(yán),要思其堪受;教人以善勿過高,要令其可從。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 737 個(gè)
工控威望: 1054 點(diǎn)
下載積分: 2482 分
在線時(shí)間: 207(小時(shí))
注冊(cè)時(shí)間: 2011-08-07
最后登錄: 2017-06-10
查看matengfei的 主題 / 回貼
4樓  發(fā)表于: 2012-08-27 18:44
個(gè)人感覺和求相反數(shù)差不多:把十進(jìn)制數(shù)值乘以-1