2016-03-29 15 views
0

konu ... Ben dizesi dönüştürmek olamaz" şeklinde bir hata almaya devamİşleme ikili sayıların bir dizi oluşturma 3 kodum çalışmıyor neden çözemiyorum

int n = 1023; 

int[] a = new int[n]; 

for (int i = 0; i < n; i++) { 
    a[i] = binary(i,10);    //problem line 
} 

int "ama dizenin nereden geldiğini göremiyorum. Her elementin ikili olduğu bir dizi yapmaya çalışıyorum.

[0] = 000000000 
[1] = 000000001 
[2] = 000000010 
[3] = 000000011 
[4] = 000000100 
etc... 

Yardımlarınız için teşekkürler.

+0

İkili hangi değişken nedir? – ryekayo

+0

@Hazza İki vardiyayı kullanmak için bit kaydırma ('' '(int i = 0; i <16; i ++) { a [i] = 1 << i;}' ') kullanabilirsiniz. Çıplak akılda 2 1023 gücü oldukça büyük bir değer (ne int veya uzun saklayabilirsiniz ötesinde) –

cevap

0

binary() işlevi String değerini döndürür. Referans:

Bir int, bayt, char veya rengi, eşdeğer ikili notasyonu içeren bir String'e dönüştürür. Örneğin, renk (0, 102, 153, 255) tarafından üretilen renk değeri "11111111000000000110011010011001" String değerine dönüşür.

İkilik sayılar dizisi istediğinizi söylemek gerçekten mantıklı değil. Sayılar sadece sayılardır. Onlar görüntü bu numaraları istediğinizde, ikili veya onaltılık veya ondalık yalnızca önemli olsun, bu nedenle binary() işlevi String değerini döndürür.

Ya (eğer gerektiğinde bir int bunları dönüştürmek için unbinary() işlevini kullanın sonra ve) ikili gösterimini temsil String değerler olarak kendi değerlerini saklamak gerekir, yoksa normal int değerleri ve sadece kullanımı gibi bunları saklamak gerekir Görüntülemeniz gerektiğinde binary() işlevini kullanın.

+0

Teşekkürler. Şimdi nerede yanlış gittiğimi görüyorum. – Hazza