蓝桥杯明码(18B)

#include<iostream>
#include<bitset>
using namespace std;
int main(){
	int n,num = 0;
	for(int i = 1;i <= 10;i++){
		for(int j = 0;j < 32;j++){
			cin>>n;
			if(n<0) n += 128;
			bitset<8>b(n);
			cout<<b;
			num++;
			if(num%2 == 0) cout<<endl;
		}
	}
	return 0;
}
#include<iostream>
using namespace std;
int* t2tarr(char data) {
    int* arr = new int[8];
    if (data >= 0) {
        for (int i = 7; i >= 0; i--) {
            arr[i] = data % 2;
            data /= 2;
        }
    }
    else {
        data = -data;
        for (int i = 7; i >= 0; i--) {
            arr[i] = data % 2;
            data /= 2;
        }
        arr[0] = 1;
    }
    return arr;
}
int main() {
    char at[10][16][2] = {
    {
        {4, 0}, {4, 0}, {4, 0}, {4, 32}, {-1, -16}, {4, 32}, {4, 32}, {4, 32},
        {4, 32}, {4, 32}, {8, 32}, {8, 32}, {16, 34}, {16, 34}, {32, 30}, {-64, 0}
    },
    {
        {16, 64}, {16, 64}, {34, 68}, {127, 126}, {66, -124}, {67, 4}, {66, 4}, {66, -124},
        {126, 100}, {66, 36}, {66, 4}, {66, 4}, {66, 4}, {126, 4}, {66, 40}, {0, 16}
    },
    {
        {4, 0}, {4, 0}, {4, 0}, {4, 32}, {-1, -16}, {4, 32}, {4, 32}, {4, 32},
        {4, 32}, {4, 32}, {8, 32}, {8, 32}, {16, 34}, {16, 34}, {32, 30}, {-64, 0}
    },
    {
        {0, -128}, {64, -128}, {48, -128}, {17, 8}, {1, -4}, {2, 8}, {8, 80}, {16, 64},
        {32, 64}, {-32, 64}, {32, -96}, {32, -96}, {33, 16}, {34, 8}, {36, 14}, {40, 4}
    },
    {
        {4, 0}, {3, 0}, {1, 0}, {0, 4}, {-1, -2}, {4, 0}, {4, 16}, {7, -8},
        {4, 16}, {4, 16}, {4, 16}, {8, 16}, {8, 16}, {16, 16}, {32, -96}, {64, 64}
    },
    {
        {16, 64}, {20, 72}, {62, -4}, {73, 32}, {5, 16}, {1, 0}, {63, -8}, {1, 0},
        {-1, -2}, {0, 64}, {0, 80}, {63, -8}, {8, 64}, {4, 64}, {1, 64}, {0, -128}
    },
    {
        {0, 16}, {63, -8}, {1, 0}, {1, 0}, {1, 0}, {1, 4}, {-1, -2}, {1, 0},
        {1, 0}, {1, 0}, {1, 0}, {1, 0}, {1, 0}, {1, 0}, {1, 0}, {5, 0}
    },
    {
        {2, 0}, {2, 0}, {7, -16}, {8, 32}, {24, 64}, {37, -128}, {2, -128}, {12, -128},
        {113, -4}, {2, 8}, {12, 16}, {18, 32}, {33, -64}, {1, 0}, {14, 0}, {112, 0}
    },
    {
        {1, 0}, {1, 0}, {1, 0}, {9, 32}, {9, 16}, {17, 12}, {17, 4}, {33, 16},
        {65, 16}, {1, 32}, {1, 64}, {0, -128}, {1, 0}, {2, 0}, {12, 0}, {112, 0}
    },
    {
        {0, 0}, {0, 0}, {7, -16}, {24, 24}, {48, 12}, {56, 12}, {0, 56}, {0, -32},
        {0, -64}, {0, -128}, {0, 0}, {0, 0}, {1, -128}, {3, -64}, {1, -128}, {0, 0}
    }
    };
    /*
    char arr[16][2] = {4,0,4,0,4,0,4,32,-1,-16,4,32,4,32,4,32,4,32,4,32,8,32,8,32,16,34,16,34,32,30,-64,0};
    for (int i = 0; i < 16;i++) {
        for (int j = 0; j < 2;j++) {
            for (int z = 0; z < 8; z++) {
                if (t2tarr(arr[i][j])[z] == 0) {
                    cout << " ";
                }
                else {
                    cout << t2tarr(arr[i][j])[z];
                }
            }
        }
        cout << endl;
    }*/
    for (int g = 0; g < 10;g++) {
        for (int i = 0; i < 16; i++) {
            for (int j = 0; j < 2; j++) {
                for (int z = 0; z < 8; z++) {
                    if (t2tarr(at[g][i][j])[z] == 0) {
                        cout << " ";
                    }
                    else {
                        cout << t2tarr(at[g][i][j])[z];
                    }
                }
            }
            cout << endl;
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值