法1
#include <iostream>
#include <bitset>
using namespace std;
string toBinary(int x){//x为有符号整数,该函数返回转换后的二进制数
bitset<8> t(x);//“8”为转换后的二进制数位,可变化
return t.to_string();
}
int main()
{
int x;
cin>>x;
string rst;
rst=toBinary(x);
cout<<rst;
return 0;
// bitset<8> t(-11);
// cout<<"0x"<<hex<<t.to_ulong()<<"="<<t.to_string()<<"b"<<endl;
}
toBinary函数实现,main函数测试
法2
#include<iostream>
using namespace std;
//将有符号整数转换为八位二进制数
void toBinaryStr(int i,string &ans)
{
if(i>=0){
ans[0] = '0';
for(int j = 0;j<7;++j){
if(((i>>j) & 1) == 1)//二进制位上为1
{
ans[8-j-1] = '1' ;
}
}
} else{
ans[0] = '1' ;
for(int j = 0;j<7;++j){
if((((i+128)>>j) & 1) == 1)//二进制位上为1
{
ans[8-j-1] = '1' ;
}
}
}
}
int main(){
int x;
cin>>x;
string xx ="00000000";
toBinaryStr(x,xx);
cout<<xx<<endl;
}