十进制到-2进制的转换

将十进制数转换成-2进制数:比如-13=1*1+1*(-2)+1*4+0*(-8)+1*16+1*(-32)==110111;

string decitominus2(int num)
{
    string result;
    while(num)
    {
        if(num%(-2)<0)
        {
            result.insert(result.begin(),'1');
            num=num/(-2)+1;
        }
        else
        {
            result.insert(result.begin(),num%(-2)+'0');
            num=num/(-2);
        }
    }
    return result;
}

 

posted @ 2016-10-15 20:12  beaglebone  阅读(227)  评论(0编辑  收藏  举报