問題タブ [uint32-t]
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 - 構造体から文字列を char 値に代入する
構造体から文字列を char 値に代入しようとしています
私の機能は次のとおりです。
そして、これをすべて開始する問題のあるコードは次のとおりです。
値は「何とか」です
これは私に警告を与えます: return はキャストなしでポインタから整数を作ります
整数の場合、次のように機能します。
どんな助けでも本当に感謝します!
c - uint8_t 16 進数値を 2 進数に変換します
タイトルにあるように、16 進数を 2 進数に変換しようとしています。しかし、私が直面している問題は、指定された値が uint32_t 型であることです。これまでのところ、uint32_t から uint8_t に変換して、それぞれの uint8_t 変数が元の 16 進値の 8 ビットを保持するようにしました。以下に示すコードで、16 進数を 2 進数に正常に変換しました。しかし、今では特定の形式で印刷できません。
主なアイデアは、反復ごとに 32 ビットのうち len をバイナリに変換して出力する必要があるということだと思いますが、そのアイデアをコードに組み込むことができませんでした。そこで、16 進数全体を変換して、必要なものだけを印刷することにしました。
c - uint32_t 配列ポインターが渡された関数で malloc を正しく使用する
4バイトの符号なし整数を含むバイナリファイルを読み取り、渡された配列参照を解放し、それを新しいサイズに再割り当てしてから、配列のメンバーにアクセスしようとする関数でmallocを使用するのが困難です。配列が4バイト整数ではなく8バイト整数の配列と見なされているように見えるため、問題は uint32_t タイプが原因であると思います。どこが間違っているのか正確にはわかりません.mallocを使用している可能性があります.IEは、私が行っていることとは異なる方法でuint32_t型を作成するように指示する必要があるかもしれません. コード:
リクエストに応じてファイル読み取りコードを追加しました。main() で配列 sched にアクセスしようとすると、読み取っているデータが 8 バイトの整数であるかのように出力されます。したがって、sched は、私が定義した 32 ビットではなく、64 ビット整数の配列と見なされていると思います。これは、解放して malloc を再度使用したためだと思います。しかし、私は malloc に、それが作成すべき型が uint32_t であることを指示したと信じているので、データがそのように扱われない理由について混乱しています。
編集:それを機能させる方法を見つけましたが、正しいかどうかはわかりません(方法1)。これは、この配列を uint32_t 型として扱う唯一の最もクリーンな方法ですか? 確かに、コンパイラは、使用するたびにキャストしなくても、扱っている型を認識できるはずです。
編集:実際にメインでアクセスしようとすると、セグフォルトが発生します。それを反映するために、コードにコメントを追加しました。以前は、for print ループをいくつかの場所で使用して、データがコンパイラによってどのように表示されているかを追跡していたため、これに気づきませんでした。
編集: バイナリ データ ファイルを追加する方法があるかどうかはわかりません。私は16進エディタで手作業で作成していますが、その正確な内容はそれほど重要ではありません. bin ファイルでは、FF FF FF FF FF FF FF FF は、1 つの 64 ビット整数としてではなく、2 つの uint32_t 型として読み取られる必要があります。Fread AFAIK はこれを気にしません。バッファを埋めるだけですが、それが間違っている場合は修正する必要があります。
ティア、ピート
c - C で文字配列を 16 進数として扱うように変換する
最近、C を使用する必要が生じたばかりです (通常は Python と Java を少し使用しています)。いくつかの問題に直面しています。
基数 10 の unsigned int を、同等の 16 進数を表す文字配列に変換する関数を作成しました。ここで、タイプ uint32_t の変数をこの「hex」に設定できるようにする必要があります。このchar[]が実際の16進値として扱われるようにするにはどうすればよいですか?
コードは以下のとおりです。
c - Cでカンマ区切りのchar *をuint32_t []配列に変換する方法
コンマ区切りの char* を C の uint32_array[] に変換したいのですが、それを行う簡単な方法/ルーチンはありますか?
私はすでに SO に多くの時間を費やしており、C++ で多くの解決策を見つけましたが、そのような C ではありません: コンマ区切りの std::string の解析ベクトルにストリーミングし、ベクトルを操作します。
に
あらゆる種類の助けをいただければ幸いです。どうもありがとう。
c++ - C ++のバッファにデータを保存する
私は2つの引数を取るC ++の単純な関数を持っています:
私がそれを呼び出そうとすると、私が渡す引数がおそらく間違っているため、エラーが発生しますunsigned long*, unsigned long
:
なぜこれが間違っているのかわかりません。何か案は?
c - 多倍長加算の実装
基数 2^32 表現に基づいて 256 ビット オペランドの多精度演算を実装しようとしています。そのために、オペランドを次のように定義しました。
そして、ここに私のMP追加関数があります:
簡単にするためにループを使用せずに実装しました。今、私が自分の関数を内部でテストするとmain
:
私が持っている:
ただし、sage で結果を検証したところ、次の結果が得られました。
ここで私を助けてくれませんか?
c - C における *((uint32_t*)&..) の意味
この *(uint32_t ) が使用される理由と、uint32_t の前後のこの " "の目的を教えてください。