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