bit-fields

    1

    2答えて

    私は、ビットインデックスの配列をOptionSetに準拠したクラスに変換するヘルパー関数を作成しようとしています。 func getOptionSet<T: OptionSet>(bitIndexes: [Int64]) -> T { var result: Int64 = 0 for index in bitIndexes { result |= 1 << ind

    2

    2答えて

    offsetofマクロと構造体とクラスのsizeof演算子があります。 を照会することができますビットは、ビットフィールドメンバのとビットサイズを相殺するようビットフィールドのために同様の機能を取得する方法はありますか? sizeofは#define field_name_size nを使用してエミュレートすることができますが、offsetofのために、私は、1つのビットフィールドに先行するすべて

    3

    2答えて

    私は以下のようにビットフィールドメンバの構造を作成していますでbitfiledsを表現する方法: struct Param { char move1: 1; char move2: 1; char move3: 1; char move4: 1; }; は誰UMLダイアグラムとしてそれらを表現するためにどのように助けることができるご質問は、残念ながら

    0

    2答えて

    いくつかのフレーム構造に取り組んでいるうちに、私は奇妙な動作に出くわしました。 は、私はすぐに次のように、独立したサンプルコードでそれをテスト: struct non_alligned_struct { uint8_t flag; // start of uint32 bit fields uint32_t a:2; uint32_t b:2;

    0

    1答えて

    これはC言語です。次のプログラムを実行すると、小さな値を指定してもランタイム・セグメンテーション・フォルト・エラーが発生します。私がこの原因を見つけるのを助けてください。 #include <stdio.h> #include <stdlib.h> struct date { unsigned day: 5; unsigned month: 4; unsigned

    4

    2答えて

    私は現在、プロジェクトに取り組んでいます。非常に大きな数(〜数十億)の構造体をベクターに格納する必要があります。また、そのベクトルを線形に反復処理する必要があります。したがって、データが少なくて済むと、より良い結果が得られます。 したがって、私は自然に単一構造のサイズを最適化し始めました。たとえば、複数のbool値がある場合は、true/false値を1ビットで格納し、十分なサイズを持つものであれ

    0

    1答えて

    私はクイッククライアント要求をアカウントフォームのコンポジットアドレスフィールドをカスタマイズしました。オプションは、yesとnoの2つのオプションフィールド、すなわちBillingを追加することです。複合フィールドのフライアウト時にフィールドのラベルを表示/非表示に変更することはできますが、どのように複合フィールドに新しいフィールドを追加できますか? 私はあなたの考えを追求したいと思います。

    6

    2答えて

    私は、ビットフィールドが移植性がないと主張しているビットフィールドに関するさまざまな質問について多くのコメントを寄せてきましたが、その理由を正確に説明するソースを見つけることはできませんでした。 私は、すべてのビットフィールドが同じビットシフトコードのバリエーションにコンパイルされていると推測していましたが、明らかにそれ以上のものがなければなりません。 だから私の質問は、ビットフィールドは非移植作

    3

    2答えて

    次のbit fieldサンプルコードはhereです。より良いストレージ効率を要求します。しかし、私はどのようにコンパイラがビットフィールドを処理するのだろうか? 私はCコンパイラHASからビット単位の操作のための追加の命令を生成すると思います。したがって、データサイズは小さくなりますが、コードサイズが大きくなります。 Cコンパイラをよく知っている人は、何か光を当てることができますか? #inclu

    0

    2答えて

    生の値がNSCoderを使用してまだコード化できる64ビットシフト(すなわちInt64)より大きいOptionSetTypeをどのように構築しますか?私は組み合わせる可能性のある64ビット以上のビットオプションを持っています。