Hatayı Bulamadım

Kapalı Hesap (153535)
18-11-2010, 19:26   |  #1  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

class BitWise{
 public static void main(String args[]){
  int m=60;
  int n;
  n=~m;
  System.out.println("n="+n);
  int a=15;
  int b=60;
  int c,d,e;
  c=a^b;
  d=a|b;
  e=a&b;
  System.out.println("c="+c);
  System.out.println("d="+d);
  System.out.println("e="+e);
  
  
 }
}
Arkadaşlar bu programda n değeri 195 olması gerekirken -61 olarak çıkıyor.Diğer kısımlarda sorun yok.Yardımcı olursanız sevinirim.

SüRmenaJ KaOSs
18-11-2010, 20:28   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,907 mesaj
Kayıt Tarihi:Kayıt: May 2009

Sen niye böyle şeylerle uğraşıyon hacı ya :D

Kapalı Hesap (153535)
18-11-2010, 20:36   |  #3  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Programcıyız o yüzden yoksa neden uğraşayım.

muh34
19-11-2010, 03:19   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Buradaki sorun int veri tipinin aksi mudahalede bulunmadıgı surece bitwise operatorleri ile 4 byte notasyon aralıgında gosterilecek olmasıdır.Sonucun -61 cıkması olagandır,cunku sayı beklenen aralık ile işleme(process) tabi tutulmamıstır.Bu gibi durumlarda,hexadecimal sayı sisteminde tanımlı f(degeri 15 'tir) sabitler ile and operatoru kapsamında işlemler yapılabilir.Sonuc olarak beklenen cıktı icin atama su sekilde olabilir,
n=~m & 0x0ff;
Bu durumda ekranda 195 degeri gorulecektir.
Başarılar