开发者

Converting decimal to binary

I want to convert decimal number in binary number. I'm using this method:

- (NSMutableString*)intStringToBinary:(long long)element{
    NSMutableString *str = [[NSMutableString alloc] initWithString:@""];
    for(NSInteger numberCopy = element; numberCopy > 0; numberCopy >>= 1)
    {
        [str insertString:((numberCopy & 1) ?开发者_如何学C @"1" : @"0") atIndex:0];
    }
    return str;
}

everything is going fine if the number "element" is >0. If the number is <0 there is the problem. For examle the method can't convert the number "-1". What can i do to solve the problem? Thanks in advance!!


You need an extra bit for the sign.

Example:

1xxxx represents the binary number + xxxx.

0yyyy represents the binary number - yyyy.


Here is a way to do it in Python using Wallar's Algorithm. The input and output are lists.

from math import *
def baseExpansion(n,c,b):
    j = 0
    base10 = sum([pow(c,len(n)-k-1)*n[k] for k in range(0,len(n))])
    while floor(base10/pow(b,j)) != 0: j = j+1
    return [floor(base10/pow(b,j-p)) % b for p in range(1,j+1)]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜