Re: [問題] short整數資料overflow解決方式

看板C_Sharp (C#)作者 (sec2)時間1年前 (2022/07/25 10:44), 1年前編輯推噓1(103)
留言4則, 2人參與, 1年前最新討論串3/5 (看更多)
※ 引述《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

07/25 16:18, 1年前 , 1F
你人真好,這種事情直接請原po找廠商或代理商給範例就好
07/25 16:18, 1F

07/25 16:18, 1年前 , 2F
了。
07/25 16:18, 2F

07/26 21:39, 1年前 , 3F
ReadDeviceRandom的方法,回傳數值範圍是1~65535(不帶
07/26 21:39, 3F

07/26 21:39, 1年前 , 4F
負號)
07/26 21:39, 4F
文章代碼(AID): #1YtWELrY (C_Sharp)
文章代碼(AID): #1YtWELrY (C_Sharp)