看板 C_Sharp 關於我們 聯絡資訊
※ 引述《sec2 (sec2)》之銘言: : 標題: Re: [問題] short整數資料overflow解決方式 : 時間: Sun Jul 24 14:55:09 2022 : : short a = -1; : : var b = BitConverter.GetBytes(a); : : var c = BitConverter.ToUInt16(b); : : c 應該就是你要的了 (=65535) : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.110.213.245 (臺灣) : ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1658645711.A.8D2.html : → t64141: 溢位是破壞性的,65535溢位成-1,131071也溢位成-1,所以由-1 07/24 22:46 : → t64141: 反推不一定是正確的 07/24 22:46 : → sec2: 原生 API 就是只回傳 short,不存在 131071 這種問題 07/25 10:17 今天找時間翻了一下 MX Component Programming Manual https://dl.mitsubishielectric.com/dl/fa/document/manual/plc/sh081085eng/sh081085engs.pdf https://bit.ly/3BeBAvS 若是原 PO 所述使用 Act 方式呼叫 ReadDeviceRandom2 的話 原生 API 的確只能回傳 short 2-byte 的資料 但如果使用 ReadDeviceRandom 而非 ReadDeviceRandom2 的話 原生 API 是可以回傳 int (4-byte) array 的 可能要等原 PO 試試看囉 我手上沒有相關裝置 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.110.213.245 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1658717077.A.D62.html ※ 編輯: sec2 (140.110.213.245 臺灣), 07/25/2022 10:56:09
s4300026: 你人真好,這種事情直接請原po找廠商或代理商給範例就好 07/25 16:18
s4300026: 了。 07/25 16:18
popo14777: ReadDeviceRandom的方法,回傳數值範圍是1~65535(不帶 07/26 21:39
popo14777: 負號) 07/26 21:39