ze_tr
Üye
- Katılım
- 25 Kas 2006
- Mesajlar
- 520
- Puanları
- 6
Arkadaşlar, java'dan varolan alışkanlıkla şöyle bir casting yapayım dedim kod derlendi.
Kod:(signed int16)gets(git);
Olay bu mudur
gets ile git değişkenine atılan veri böylece işaretli int16 tipinde mi olmuş oldu?
ps: şimdi farkettim, sonsuz döngü içinde enable_interrupts(int_rda); demeyi unutmuşum.
Sonsuz döngü içerisinde enable_interrupts(int_rda); yazmanızın bir anlamı yok. Sadece döngüye girmeden önce yazmanız yeterli.
Hyperterminalden alacağınız sayıyı ya scanf ile veya tek tek getch ile alabilirsiniz.
say1=getch();
Hyperterminalden aldığınız sayı 1 ise sayı değişkeninde 0x31 sayısı yani ('1') bulunur o nedenle say1-=0x30; yapmalısınız.
8 bitlik sayılardan 16 bitlik sayı elde etmek için ya make16 fonksiyonunu kullanacaksınız veya union tip tanımından 16 bitlik değişkeni iki adet 8 bitlik değişkenlerle aynı yerde tanımlayacaksınız veya;
*(&say16)=say1;
*(&say16+1)=say2;
yapacaksınız. Yalnız gelecek olan sayı 3 basamaklı ve 255 ten büyük ise o zaman say16=say3*100+say2*10+say1; ile 16 bitlik sayıyı elde edeceksiniz.