这几天做c++中位运算方面的作业,将内存块的二进制内容反转等都顺利做出,但float和double型以二进制输出却是难了我好久,由于一直想把所用类型的字节赋给四个char,然后再转换为int,一直未能得到正确的结果,最后在临班相似作业的提醒下想到了如下方法,
float arrayx(float x) {
char *p1 = ( char *)&x;
int length = sizeof(x);
p1 = p1 + length - 1;
for (int j = 0; j < sizeof(x); j++) {
unsigned char tem = 0x80;
for (int i = 0; i < 8; i++) {
if ((*p1)&tem) {
cout << 1;
}
else {