dv0429
級別: 略有小成
![]() |
真是暈倒,我的已經(jīng)說(shuō)得很清楚~!! 在乘法上32767是用16位寄存器還是32位的分界點(diǎn),這是毫無(wú)疑問(wèn)的地方 但是在除法上無(wú)論你是16位除法還是32位除法都是占用32位,第一個(gè)結果是商,第二個(gè)是余數.比如DIV D0 D10 D20來(lái)說(shuō),D20是商,D21是余數.DDIV d100 D110 D120,那么D120.D121是商,D122,D123是余數,當然如果出來(lái)的值少于32767的話(huà)你可以直接調用低位的D來(lái)作以后的運算,不必一定要用32位指令.總之還是那個(gè)原則,32767是16位和32位的分界點(diǎn) 目前來(lái)說(shuō)PLC不支持64位 |
---|---|
|
ljc2008
一學(xué)到老
級別: 家園?
![]() |
書(shū)上是對的,在PLC的程序運算中,你事先并不知道運算結果,因此,兩個(gè)16位相乘,不管結果是否超過(guò)16位,都必須按32位結果來(lái)做下一步處理,這樣才保證以后處理不會(huì )錯。知道了二個(gè)數相乘不超過(guò)16位,拿這種情況來(lái)討論沒(méi)有普遍意義。 |
---|---|
|
小蜜蜂
你讓我滾,我滾了。你讓我回來(lái),對不起,滾遠了...
級別: 論壇先鋒
![]() ![]() |
有意義的,我只是想知道兩個(gè)數相乘結果不超過(guò)16位,那下一行是否可以用16位的指令比如MUL,DIV等,因為按照書(shū)上的講的話(huà),兩個(gè)16位的相乘結果的32位,那下一行的乘法或除法肯定要用32位的,加D,那么到第三行了我還要用乘或除法,就不能執行下去了,因為64位的無(wú)法處理了。 |
---|---|
|