ネットワーク通信で、C++からMATLABに情報を引き出すために使用しようとしているコードがあります。 https://www.mathworks.com/matlabcentral/fileexchange/345-tcp-udp-ip-toolbox-2-0-6?s_tid=answers_rc2-2_p5_MLT7ビットの最大値を切り捨てたCコード
私の受信側では、int8の受信を期待しています。それから私はuint8のようにタイプキャストします。したがって、受信バイトごとに、0-255が値として期待されます。
私は受信側で127個の受信パケットを受信していたところにいくつかの矛盾があることに気づき、128-255から送信するすべての値に対して、受信コード(pnet受信呼び出し直後)
このように、pnet.cファイルにバグがあり、値が完全にuint8
の範囲を表示するのではなく、7ビットの最大値に切り捨てられると考えられます。
これはなぜ起こっているのでしょうか?私は主にmatlabユーザであり、データ型キャストに多くの時間を費やしていないので、私はここで少し深く感じています。私はここで何が起こっているかを考え出し
data = pnet('read',number of bytes to read,'noblock')
がどのようにあなたはそれが送信側では発生しないことを知っていますか? – 4386427
ライブラリを使用しているMATLABコードを教えてください。 –
'int8 -1'を' uint8'に「キャスト」すると、MATLABはCのようにして255を返しますか、それとも奇妙な切り捨てをしますか? –