ビットタイプデータ


#include <iostream>
using namespace std;

int main()
{
        struct A
        {
                unsigned int a:1;
                unsigned int b:2;
                int c:1;
                int d:2;
        }sa;
        sa.a = 1;
        sa.b = 3;
        sa.c = 1;
        sa.d = 3;
        printf("%d, %d, %d, %d
", sa.a, sa.b, sa.c, sa.d); return 0; }

出力:1,3,-1,-1
A bit-field may have type int, unsigned int, or signed int. Whether the high-order bit position of a “plain” int bit-field is treated as a sign bit is implementation-defined. A bit-field is interpreted as an integral type consisting of the specified number of bits.
上記の意味は、1 bitタイプで表される数であっても記号があるものであってもよく、このbitタイプの最上位は記号ビットを表すものである.最上位表示記号を除いたフィールドは数値を表します.符号なしのcは、-1,0を表し、符号なしのdは-2,-1,0,1を表し、注意-0は表す.またオーバーフローの場合,bは2ビットのみで3を表すことはできないが,bのビット設定は3の後2ビット表示と同様であり,データの後半部分の遮断に相当する.