word değişkende bit ataması yapma?

Başlatan F.T, 04 Ekim 2014, 11:18:14

F.T

herkese kolay gelsin.

dim secim as word

bu değişkende 16 adet bitimiz var

bu değişkendeki 1.2.3.4.5.6.7.8.9. ve 10. bitlerimizi bir yaptık

secim=1023 olarak atadık.

şimdi burdaki %0000001111111111  bit durumlarından 1 olanları

ıf secim.0=1 then gosub bir        gibi karşılaştırmak istiyorum.16 adet biti nasıl karşılaştırmam lazım.
ıf secim.1=1 then gosub iki
.
.
.
.
.
.
ıf secim.16=1 then gosub onaltı
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Gökhan BEKEN

ikilik sistemde: 0000001111111111 sayısının, x. bitinin 1 mi 0 mı olduğunu öğrenmek için and işlemi yapmanız gerekiyor.

sayi=0000001111111111
sayi and (1<<4) işleminin sonucu= 0000000000010000 eder

12. bitini alsaydık:
sayi and (1<<12) işleminin sonucu= 0000000000000000 ederdi

bu demek oluyorki eğer işlemin sonucu 0'dan büyükse o bit 1 dir, 0 ise o bit sıfırdır.

c dilinde böyle yazılır, protonu bilmiyorum
if((sayi & (1<<12))>0) printf("12. bit 1 dir");
else  printf("12. bit 0 dır");
Özel mesaj okumuyorum, lütfen göndermeyin.

ete

Bu işi yapan GETBIT isimli bir komut var Protonda, Şöyle çalışıyor.
SECIM=%0000001111111111 
FOR INDEX=0 to 15
 TEMP=GETBIT SECIM,INDEX  'index değişkenine bağlı olarak secim değişkeninin ilgili bit'ini alıp temp değişkenine yerleştir (temp bit tipi olabilir)
 IF TEMP=1 AND INDEX=0 THEN GOSUB BITSIFIR
 IF TEMP=1 AND INDEX=1 THEN GOSUB BITBIR
 IF TEMP=1 AND INDEX=2 THEN GOSUB BITIKI
..
..
NEXT

GETBIT, SETBIT, CLEARBIT VE LOADBIT Komutlarını incele istersen.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

F.T

meftun hocam yardımın için teşekkür ederim.
ETE hocam selamlar.proton manuelinde
dim secim as word
dim secloww as word secim.lowbyte
dim sechıghh as word secim.hıghbyte

bu şekilde tanımladım.daha sonrasında

ıf secloww.0=1 then gosub bir
ıf secloww.1=1 then gosub iki
.
.
.
.
ıf sechıghh.0=1 then gosub sekiz
ıf sechıghh.1=1 then gosub dokuz
.
.
.
ıf sechıghh.7=1 then gosub onaltı

hocam bu şekilde işimi gördü.verdiğiniz emeklerden dolayı teşekkür ederim.hayırlı bayramlar.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.