将十进制转换为二进制(Java)

时间:2016-07-27 19:58:11

标签: java

我试图将十进制转换为二进制但有些当我转换128二进制时输出给我11111110,我试图修复计算但仍然以相同的输出结束。

// fetch realm from cloud
[privateDatabase fetchRecordWithID:recordID completionHandler:^(CKRecord *record, NSError *error) {
  if (!error) {
        CKAsset *realmAsset = record[@"Realm"];
        ...

        // Do not delete existing default.realm file in documents

        // create a new default.realm file with downloaded data
        // as deferent file name

        NSString* newFileName = @"default1.realm"; // default2.realm, default3.realm, ...
        NSString* newfileAtPath = [filePath stringByAppendingPathComponent:newfileAtPath];
        if([[NSFileManager defaultManager] createFileAtPath:newfileAtPath contents:realmData attributes:nil]) {
              // Switch to using new file to create Realm instance
              // e.g. set new file path to de default configuration file URL
              let config = Realm.Configuration(fileURL: NSURL(fileURLWithPath: newfileAtPath)!)
              Realm.Configuration.defaultConfiguration = config
              ...
        }

3 个答案:

答案 0 :(得分:2)

你有一个问题,你正在向后写这个号码。你需要先从最高位开始

for (int powerOfTwo = 128; powerOfTwo > 0; powerOfTwo /= 2) {

当您以十进制书写时,您会以最高权力开始,例如1234是1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1

答案 1 :(得分:0)

你可以采取简单的方法并使用: Integer.toBinaryString(int i)然后将字符串打印到控制台。 查看here.

答案 2 :(得分:-1)

public class DCTB {


    public void convertor(int n)
    {
        for(int i=0;i<10;i++)
        {
        int arr=(int) (n%2);
        n=n/2;
        System.out.println(Integer.toString(arr));
        }   
    }

    public static void main(String args[])
    {
    DCTB obj=new DCTB();
    obj.convertor(10);
        }

}