こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

共用体のサンプルコード : 内容がわかりません

#include <iostream>

using namespace std;

union bits{
bits(double n);
void show_bits();
double d;
unsigned char c[sizeof(double)];
};

bits::bits(double n)
{
d = n;
}

void bits::show_bits()
{
int i, j;

for(j = sizeof(double)-1; j>=0; j--){
cout << "バイト単位のビットパターン" << j << ":";
for(i=128; i ; i >>=1)
if(i &c[j]) cout <<"1";
else cout << "0";
cout <<endl;
}
}

int main ()
{
bits ob(1991.829);
ob.show_bits();

return 0;
}

このコードが何をしているのか解説していただけないでしょうか?

投稿日時 - 2008-02-04 10:42:24

QNo.3743098

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

bitsは倍精度浮動小数点数(d)と文字配列(c)の共用体で、倍精度浮動小数点数を設定(コンストラクタ)してそのビット表現を表示(show_bits関数)できる。

C++の共用体なのでコンストラクタや関数をメンバに持てる。
その例だろう。

投稿日時 - 2008-02-04 11:29:18

あなたにオススメの質問