0

以下のデータ型をバイナリに変換する必要があります。

  1. バイナリに長い長い
  2. NSUIntegerからBinary

これに関する助けをいただければ幸いです。

私が持っているコードは:

上記のリンクに従って、

 - (NSString *) longlongToBinary:(long long) val {

long long num = val;
NSString *res = [NSString string];

for (long long i=63; i>=0; i--)
{

    long long div = 1l<<i;
    if ((num&div)==div) res = [res stringByAppendingString:@"1"];
    else res = [res stringByAppendingString:@"0"];
}

return res;

}

valが20の場合、取得する出力は次のとおりです。

0000000000000000000000000001010000000000000000000000000000010100

オンラインコンバーターで見ると、これは間違っています。

4

2 に答える 2

2

longわずか32ビットです。メソッドの名前はlonglongToBinary、なので、すべてのlong変数をに変更しますlong long。これにより、使用している64ビットが得られます。

ほとんどの変数をlong longに変更したので、ループ変数iをに戻し、定数をにint変更します。1l1ll

于 2013-03-08T20:17:23.297 に答える
2

リテラル1lはまだ長いだけです。そのため、出力が 2 回表示されます。リテラルを次のように変更します1ll

于 2013-03-08T20:26:20.817 に答える