一個字=16個位,對應(yīng)1248163264128等,那么-1-2-4-8這些對應(yīng)的什么呢,是什么意思?
答:不可按“對應(yīng)1248163264128等”一概而論,樓主所言的只是對不帶符號的word數(shù)據(jù)類型。至于負數(shù)更不能套用了。
1、一個字為16個位,但一個字可以表示不同的數(shù)據(jù)類型。
word數(shù)據(jù)類型(不帶符號,0~65535)與int數(shù)據(jù)類型(帶符號,-32767~32768):
通常情況下word用于邏輯運算,int用于數(shù)學運算;
在使用梯形圖或scl等語言編程時區(qū)分較嚴格。
在使用語句表編程時系統(tǒng)不檢測數(shù)據(jù)類型是否匹配,即word與int在用法上沒有什么區(qū)別(word可做數(shù)學運算,int也可作邏輯運算)。
2、有關(guān)負數(shù):
負數(shù)轉(zhuǎn)換為二進制,就是將其相反數(shù)(正數(shù))的補碼的每一位變反(1變0,0變1)最后將變完了的數(shù)值加1,就完成了負數(shù)的補碼運算。這樣就變成了二進制。
舉個例子:
將-1變成二進制。
①首先確定二進制的位數(shù),假定為16位,即可以表示-32768到32767的所有十進制整數(shù)。
②將-1的相反數(shù),也就是1表示為二進制0000000000000001(十六進制表示為0x0001)
(由于四位二進制可以表示為一位十六進制,故一般將二進制按四位進行分段表示)
③將這個二進制變反,可以得到1111111111111110(十六進制hex表示為0xfffe)
④將變反后的數(shù)值加上1,得到-1的二進制表示1111111111111111(十六進制表示0xffff)