代码
#include<iostream>
#include<string>
#include<bitset>
using namespace std;
int main(){
// 实验整数
int target = -19;
cout << "当前实验整数:" << target << endl;
// 整数转32位补码(计算机以补码进行计算)
cout << "32位补码: " << (bitset<32>)target << endl;
// 整数转8位 bitset的不同写法
bitset<8> bitSet;
bitSet = target;
cout << "8位补码: " << bitSet <<endl;
// 8位补码转回整数(无论正负)
// 8位数位 以整数[-127, 128]范围内有效
string str = bitSet.to_string();
int ans = 0;
for(int i=0;i<str.size();i++) {
ans=ans*2+str[i]-'0';
}
if(ans > 128) {
ans -= 256;
}
cout << "8位补码转回整数: " << ans <<endl;
return 0;
}
截图
如有错误,烦请您指出,有更好的方法或者接口,欢迎来交流呀。