台灣最大程式設計社群網站
線上人數
945
 
會員總數:245151
討論主題:189055
歡迎您免費加入會員
討論區列表 >> C# >> 如何將變數改為16進至並放入byte[]內,進行傳輸
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何將變數改為16進至並放入byte[]內,進行傳輸
價值 : 60 QP  點閱數:476 回應數:11

樓主

777
門外漢
0 20
192 21
發送站內信


testbt4 是我傳遞訊息給機器的指令。
但我想在運行時可隨時改變指令內的值。
因此我放入變數於testbt4 內。
numericUpDown1.Value 我設定是1000。
我想要a輸出結果要是0xE8。






搜尋相關Tags的文章: [ 如何將變數改為16進至並放入byte[]內,進行傳輸 ] ,
本篇文章發表於2018-12-19 18:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

春天
檢舉此回應
你這樣寫不行嗎

假設指令要你傳 10 進去,那你傳 10 或 0x0A 對機器來說都是一樣的

16進制只是表示方法不一樣,實際上還是一個值

可以做個簡單的測試


本篇文章回覆於2018-12-20 09:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

777
檢舉此回應
應該這樣問 問甚麼我輸入1000,轉乘16進制 =3E8
我將3E8 或者 E8 帶入a = Convert.ToByte(rp);
他會和我說輸入字串格式不正確呢?
本篇文章回覆於2018-12-21 10:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

777
檢舉此回應
應該這樣問 問甚麼我輸入1000,轉乘16進制 =3E8
我將3E8 或者 E8 帶入a = Convert.ToByte(rp);
他會和我說輸入字串格式不正確呢?
本篇文章回覆於2018-12-21 10:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

777
檢舉此回應
byte a = 0xE8;
直接定義是可以的。
但是就是不能將字串 "0xE8" 轉成BYTE
本篇文章回覆於2018-12-21 10:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

春天
檢舉此回應
因為Byte是 0 ~ 255
本篇文章回覆於2018-12-21 13:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

777
檢舉此回應
是喔
但工程上使用 不是很常會需要用到16進制的TX指令 改變馬達轉速嗎?
我轉速想要在1000rpm 應該如何做呢?
但是依您說的byte是0~255,卻又為何byte a = 0xE8;
可以定義呢?
本篇文章回覆於2018-12-22 14:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

春天
檢舉此回應
0xE8是232
0x3E8是1000 byte裝不下
你可以試試



另外控制轉速要查原廠的技術文件看要怎麼傳參數
以印表機設定列印範圍來講(值大多會超過255)
機器會要求提供兩個參數比如 X,Y 然後再計算 X * 256 + Y 為最終值
本篇文章回覆於2018-12-22 15:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

777
檢舉此回應
那請問 假設我將 1000轉成16進制是3e8 分別放入 0x03 和 0xe8的字串內,這兩個字串如何放入byte[]使用呢?
本篇文章回覆於2018-12-28 14:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

春天
檢舉此回應
參數傳遞要看 設備的技術文件
本篇文章回覆於2018-12-28 17:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

ak41
檢舉此回應

Byte的上限是<255>也就是Hex的0xFF
你的RPM <1000>不可放在1個Byte裡面
所以通訊上是用兩個Byte 或更多
一般來說是用一個Word(= 2Byte)傳遞
也就是<65536>0xFFFF才能裝得下你的RPM <1000>0x03E8
HiByte = 0x03 LoByte = 0xE8
本篇文章回覆於2019-01-19 09:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
最有價值解答

ak41
檢舉此回應
Bytes[10] = Byte;
Bytes[0] = 0x03; //10
Bytes[1] = 0xE8; //00
本篇文章回覆於2019-01-19 10:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.