avatar_Mucit23

iki değişken arası bit kaydırma

Başlatan Mucit23, 05 Şubat 2013, 00:32:12

Mucit23

Hocam merhaba.

İki değişken arası bitleri kaydırmam gerekiyor. Yani 2 değişkeni bir bit sola kaydırdığımızı düşünün. Benim amacım değişkenlerden 1 tanesinin en soldaki bitini diğer değişkenin en sağına vermek

Başka bir tabir ile, iki değişkeni birer bit Sola kaydırdığımız zaman sağdaki değişkenin en soldaki çöpe giden biti, soldaki değişkeni bir bit sola kaydırıp boşta kalan 7. bitin yerine verilecek.

Bu işlemi yapacak şöyle bir kod parçacığı denedim ama düzgün çalışmadı.

SOLDATA=SOLDATA<<1 : SOLDATA.0=SAGDATA.7 : SAGDATA=SAGDATA<<1

Aklıma çok uzun yollar geliyor.

Tüm bitleri teker teker eşleştirme gibi. Yazmaya bile eriniyorum açıkçası. Sizin fikriniz nedir

Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

En kolay yolu iki byte değişkenini bir word değişkeninde birleştirmek. Sonra word değişkenini bir bit sola kaydırmadan önce en soldakini bir temp değişkenine aktarmak , bitleri kaydırdıktan sonra temp içindekini en başa almak.

İkinci yol adımlar şeklinde olayı ele alırsak ve elimizde solda B sağda a değişkeni olduğunu varsayarsak;

-B değişkeni 7 bit temp değişkenine aktarılır
-B değikeni 1 bit sola kaydırılır
-A değişkeni 7 biti B.0 a aktarılır
-A değişkeni bir bit sola kaydırılır
-A.0 a temp deki değer aktarılır.
Bu kadar başkada yolu yok sanırım.
Ete

Mucit23

#2
Hocam zaten iki word değişkeninde işlem yapıyorum. Toplamda kayacak olan bit sayısı 32 bit, Byte Byte yapsam iş daha uzuyor.

Aslında benim yaptığım kodu çalıştırdım.

Mantık hatası vardı. Kodun çalışmasını size anlatırken hatamı farkettim.

  SOLDATA=SOLDATA<<1:SOLDATA.0=SAGDATA.15:SAGDATA=SAGDATA<<1 

Bu şekilde sanırım istediğim kadar değişkeni kaydırırım.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Powered by EzPortal