如何判斷二進制數是負數?二進制十進制負數位集
目前我有下面的代碼。它工作正常轉換爲二進制。當轉換爲十進制時,我需要知道最左邊的位是否爲1來判斷它是否爲負數,但我似乎無法弄清楚如何做到這一點。
此外,而不是讓我的Bin2函數打印1的0,我怎麼能讓它返回一個整數?我不想將它存儲在一個字符串中,然後轉換爲int。
編輯:我正在使用8位數字。
int Bin2(int value, int Padding = 8)
{
for (int I = Padding; I > 0; --I)
{
if (value & (1 << (I - 1)))
std::cout<< '1';
else
std::cout<<'0';
}
return 0;
}
int Dec2(int Value)
{
//bool Negative = (Value & 10000000);
int Dec = 0;
for (int I = 0; Value > 0; ++I)
{
if(Value % 10 == 1)
{
Dec += (1 << I);
}
Value /= 10;
}
//if (Negative) (Dec -= (1 << 8));
return Dec;
}
int main()
{
Bin2(25);
std::cout<<"\n\n";
std::cout<<Dec2(11001);
}
C++不支持二進制文字或二進制格式的打印數字。要處理二進制表示,你應該使用字符串。請注意'Dec2(11001)!= Dec2(00011001)'。 –