asd119586
級(jí)別: 探索解密
![]() |
smart200 怎么讀取無符號(hào)16位整數(shù)并進(jìn)行運(yùn)算呢? 我這里有一個(gè)走串口通訊的設(shè)備,是5個(gè)UINT16位,并且需要這其中加減乘除計(jì)算 但是smart200默認(rèn)只能有符號(hào)整數(shù),有沒有什么辦法可以轉(zhuǎn)成無符號(hào)整數(shù)來運(yùn)算嗎?或者有沒有有符號(hào)轉(zhuǎn)無符號(hào)的庫呢 ![]() ![]() ![]() |
|
---|---|---|
|
18857713026
賺點(diǎn)辛苦錢不容易啊 誒~~~~ 努力賺錢
級(jí)別: 家園?
![]() |
WORD 無符號(hào)16位 int 有符號(hào)16位。 485對(duì)象 默認(rèn)就是word 如果不是 INT_TO_WORD |
---|---|
|
asd119586
級(jí)別: 探索解密
![]() |
smart200里默認(rèn)就是int數(shù)據(jù)格式,讀取無符號(hào)出來就是有符號(hào)的 好像可以通過算法來使讀取到的有符號(hào)轉(zhuǎn)為無符號(hào),但是不知道怎么解決 ![]() |
|
---|---|---|
|
bdmogui
級(jí)別: 略有小成
![]() |
大佬們應(yīng)該都很忙。這應(yīng)該用不到什么算法,變通一下,將無符號(hào)數(shù)放到雙整數(shù)的低字,高字賦0,然后讀取雙整數(shù) |
---|---|
本帖最近評(píng)分記錄: |
wsxebjz
級(jí)別: 略有小成
![]() |
用十六進(jìn)制表示可以在一個(gè)vw中存入超過32500的數(shù),比如50000 |
---|---|
|
18857713026
賺點(diǎn)辛苦錢不容易啊 誒~~~~ 努力賺錢
級(jí)別: 家園常客
![]() |
要什么算法。。。 不是系統(tǒng)提供了 INT_TO_WORD WORD_TO_INT ???? |
---|---|
|
asd119586
級(jí)別: 探索解密
![]() |
因?yàn)檫\(yùn)算只能用INT格式運(yùn)算,運(yùn)算的過程還是有符號(hào)的 |
|
---|---|---|
|
marksman_01
一起進(jìn)步
級(jí)別: 家園常客
![]() |
你只要明白,無符號(hào)和有符號(hào)數(shù)的區(qū)別就是最高位,有符號(hào)數(shù)最高位是符號(hào)位,無符號(hào)數(shù)不能算數(shù)運(yùn)算是因?yàn)闆]有符號(hào)位,所以你通訊的數(shù)據(jù)如果支持符號(hào),那你直接轉(zhuǎn)成有符號(hào)數(shù),如果通訊的數(shù)據(jù)是無符號(hào)數(shù),那代表此數(shù)不可能是負(fù)數(shù),所以要處理成雙字有符號(hào)整數(shù)在進(jìn)行運(yùn)算 |
---|---|
|