問題タブ [uint16]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - uint16_t を printf() するにはどうすればよいですか?
uint16_t を出力するには、printf() を使用する必要があります。この SO の回答 ( uint32_t および uint16_t 変数の値を印刷する方法は? ) は、inttypes.h を使用する必要があることを示しています。
しかし、私は組み込みシステムに取り組んでおり、inttypes.h は利用できません。uint16_t のフォーマット指定子が利用できない場合、uint16_t を出力するにはどうすればよいですか?
c - Cでuint16_tをintに解析するには?
のデータを取得しましuint16_t
た0x2c06
。
の場合0x2c06
、2c
は最初のデータで、06
は 2 番目のデータです。
を解析して、とを int に0x2c06
変換するにはどうすればよいですか?2c
06
前もって感謝します。
ios - Swiftでunichar/UInt16の値を16進数で設定(初期化)する方法
UInt16
定数の値を16 進数値に設定したい。
Swiftを設定する方法Character
は
だから私は試しました
しかし、これらのどれも機能しませんでした。
答えを探しているとき、私はほとんどの場合、NSString
または他のタイプからの変換についてSOの質問を受けました。
これは、Objective C プログラマーの経験者にとってはばかげた質問ですが、私は答えを見つけるのに苦労していました。しかし、ようやく見つけたので、質問と回答を共有して、将来同じ質問を検索する可能性のある他の人のためにいくつかのキーワードを追加できることを願っています.
ノート:
- Swiftでunichar変数を初期化するには? この Q&A には、16 進数で初期化する方法が記載されていません。
c++11 - std::copy runtime_error を uint16_t で作業する場合
これが壊れる理由についての情報を探しています。コンテキスト情報については補遺を参照してください。
std::vector<uint16_t> depth_buffer
640*480 要素を持つように初期化された があります。これは、占有する合計スペースが であることを意味します640*480*sizeof(uint16_t) = 614400
。
壊れるコード:
wheredepthBufferSize()
は 614400 を返します (これは何度も確認しました)。
私の理解でstd::copy(first, amount, out)
は、first
コピーを開始するメモリアドレスを指定し、コピーするまでのamount
バイト数を指定し、コピーを開始するメモリアドレスを指定します。out
もちろん、次のような方法で手動で行うこともできます
への呼び出しの代わりに、なぜここで失敗std::copy
するのか本当に混乱しています。std::copy
何かご意見は???
FreenectDevice
補遺: コンテキストは、Kinect 360 で動作するようにを継承する派生クラスを書いているということBus Error
です。でステップスルーすると、からスローされている標準です。手動で入力するとクラッシュしますが、持っているとぐちゃぐちゃになります。この段階では、深度データで意味のあることを行っていないため (OpenGL を使用して生の深度を適切にレンダリングすることは別の問題 xD です)、すべてがコピーされたのか、一部だけがコピーされたのかを判断するのは困難です。とはいえ、すべてを把握しているわけではないことはほぼ確実です。DepthCallback
Bus Error
lldb
runtime_error
std::copy
depth + 614400
depth + (640*480)
VideoCallback
の対応する呼び出しとは対照的にcopy(video, video + videoBufferSize(), video_buffer.begin())
、上記がクラッシュする理由がわかりません。私の理解std::copy
が間違っていた場合、videoBufferSize()
が返されるため、これもクラッシュするはず640*480*3*sizeof(uint8_t) = 640*480*3 = 921600
です。これ*3
は、uint8_t
ピクセルごとに 3 つの RGB (A なし) があるためです。OpenGL で検証されているように (そしてVideoCallback
、libfreenect で提供されているサンプルと本質的に同一であるという事実...)、問題なく動作します。参考までに、実際に生の深度データを直接操作するサンプルは見つかりませんでした。それらはすべて、深度を色付けし、std::vector<uint8_t>
RGB チャネルを使用します。これは、このプロジェクトのニーズに適していません。
私はそれを無視して、ある意味で先に進むことができてうれしいです。なぜなら、これがうまくいかないからです。ご意見ありがとうございます。
swift - Swift 2.2: UInt16 のバグ?
私のクラスでは、デフォルトのポートを次のように定義します。
(私も試しましたprivate let DEFAULT_PORT: UInt16 = 47300
:)
UInt16 の最大数は 65,535 であるため、これで問題ありません。
ただし、アプリは 1 つの方法でクラッシュし、デバッガーは DEFAULT_PORT が -18326 に等しいことを示しています。
これはどのように可能ですか?Swiftのバグでしょうか?手がかりがありません。
c - Matlab int16() C と同等ですか?
Matlab には、int16 と呼ばれる関数があり、たとえば double 値を次の整数に丸めます。Cにそれに相当する単純なものはありますか?
特に、-1.65 から -2 および 1.33 から -1 などの負の数の丸めの場合。
decimal - 単位から小数へ
SPI を介して ADC からデータを取得しています。データを uint16_t 型の配列に保存し、ターミナルを使用して結果を確認します。
この結果を unsigned int ではなく 10 進数で表示するにはどうすればよいですか?
取得した値が本当に欲しいものかどうかを知る必要があります。
私のコードはCです。
こんな感じで印刷しています。
しかし、端末で数値を10進数で表示したいと思います。
printf を機能させるための書き込み機能もあります。
マルク
string - Arduinoで文字列をuint16_tに変換するにはどうすればよいですか?
文字列変数にはuint16_t
?に安全に配置する必要がある 16 進数が含まれます。
例:
ここで 10 進数に変換する必要はありません。
つまり、私の要件は、unint16_t num = 0x11A0;
です。unint16_t
16 進数からに変換する必要があります。
unint16_t
を含むことができます0x11A0
が、私の問題は、文字列変数から値を取得して に保存できないことですunint16_t
。
python - Python: uint16_t の配列を文字列に変換します (RS-485 経由の Arduino から)
modbus rtu 経由で json を送信しようとしています (modbus の使い方が非常に悪いことはわかっています)。
Arduino USBをCOM5としてPCに接続し、USB-RS485に接続されたRS485コンバータをCOM4としてPCに接続しました。
QModBusアプリケーションを使用して Arduino からデータを読み取ると、大量のバイト (COM4) が表示されます。
制御用: QModBus から「保持レジスタの読み取り」を送信した後、「Arduino USB ポート」(COM5) の Arduino シリアル モニタは有効な文字列を出力します。つまり、modbus バイトは問題ないということです。
私のArduinoコードがあります:
しかし、これらのバイトをPythonでjson文字列に変換する方法がわかりません。私のコード:
コードは QModBus と同じ値を出力します:
arduinoのシリアルモニターでわかるように、これらの数値をjson文字列に変換するにはどうすればよいですか?
また、modbus 経由で送信するために Python 文字列を「uint_16t」に変換する方法。
ありがとうございました!
ios - 最初のゼロをスキップせずに文字列をintに変換する方法は?
注-ここでhexttoIntを変換しようとしていません..私が達成したいのは、16進形式のシリアル番号305419896(10進数)の9桁が12345678であることです..0x1234を1つの値として、0x5678を他の値として取得しようとしています価値..
"0145"
私の10進数は021340031で、16進数は01459F7Fで、とのような2つの文字列に分割されて"9f7f"
います..この文字列値は、 0x0145 、 0x9f7f ..のような形式で必要です。
そのために、最初に Str を Int に変換しようとしています。
それから私は得て145
います..
String を UInt16 に直接変換する方法はありますか、または期待値を取得するための回避策はありますか?