如何判断二进制数是否为负?
目前我有下面的代码。它可以很好地转换为二进制。转换为十进制时,我需要知道最左边的位是否为 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);
}