こんにちは。
int a=2,b;
double c=3.982;
b=a;
こういうデータのコピーをすると、32bitまとめてコピーされてしまいますが、
int型aの3bit目のデータだけ、int型bの6bit目にコピーするとか、
double型の15bit目のデータだけ、int型bの6bit目にコピーするとか、
今回例えばなので、意味がないコピーですが、
こういうことは出来るのでしょうか?
ビットのコピーって出来ますか?
Re:ビットのコピーって出来ますか?
共用体とビットフィールド使えば出来ると思います。
あんまりよくない例ですが、参考までに。
#include<iostream>
using namespace std;
union A
{
int ch;
struct{
unsigned b: 1;
unsigned c: 1;
unsigned d: 1;
unsigned e: 1;
unsigned f: 1;
unsigned g: 1;
unsigned h: 1;
unsigned i: 1;
}b;
};
int main()
{
A a;
for(int i=0;i<=0xff;i++){
a.ch = i;
cout <<a.b.b<<a.b.c<<a.b.d<<a.b.e<<a.b.f<<a.b.g<<a.b.h<<a.b.i<<endl;
}
return 0;
}
あんまりよくない例ですが、参考までに。
#include<iostream>
using namespace std;
union A
{
int ch;
struct{
unsigned b: 1;
unsigned c: 1;
unsigned d: 1;
unsigned e: 1;
unsigned f: 1;
unsigned g: 1;
unsigned h: 1;
unsigned i: 1;
}b;
};
int main()
{
A a;
for(int i=0;i<=0xff;i++){
a.ch = i;
cout <<a.b.b<<a.b.c<<a.b.d<<a.b.e<<a.b.f<<a.b.g<<a.b.h<<a.b.i<<endl;
}
return 0;
}