slm arkadaşlar
beni yapmak istediğim şey şu hepinizin bildiği gibi pozitif sayılar
0,1,2,3,4,5,6,7,8,9 sayılarının 8 bitin ilk 4 biti ile ifade edilir örneğin
1 sayısı =0000 0001
2 sayısı =0000 0010
3 sayısı =0000 0011 gibi
şimdi benim yapmak istediğim
x:byte değişkenine 23 sayısını yüklemek ve bunu çözümleyebilmek
x =0010 0011
özetleyecek olursam x in ilk dort bitine 3 yerleştirmek; 2. 4 bitine de 2 yi yerleştirmek. Bunuda ayrı ayrı çözümleyebilmek.
şimdiden yardımlarınız için tşk ederim hepinize iyi çalışmalar dilerim
1 byte'lık alana 2 byte lık veriyi sıkıştırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
s.a.
önce sayıyı 0001111 ile and lersin burdan 3 ü bulursun
sonra sayıyı shr(shift right) ile sağa kaydırırsın gene 00001111 ile andlersin bu seferde 2 yi bulursun.
Not: bir sayının negatif olup olmadığını en soldaki bit belirler. Bu da kullandığınız veritipine göre değişir.
int = 10000001 = -1 iken
word = 10000001 = 81 olur. arkadaşların kafası karışmasın.
önce sayıyı 0001111 ile and lersin burdan 3 ü bulursun
sonra sayıyı shr(shift right) ile sağa kaydırırsın gene 00001111 ile andlersin bu seferde 2 yi bulursun.
Not: bir sayının negatif olup olmadığını en soldaki bit belirler. Bu da kullandığınız veritipine göre değişir.
int = 10000001 = -1 iken
word = 10000001 = 81 olur. arkadaşların kafası karışmasın.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
s.a.
uygulama hazırlayacak vaktim yok ama sana gidiş yolunu gösterdim. Biraz daha açıklamaya çalışıyım.
kolay gelsin.
uygulama hazırlayacak vaktim yok ama sana gidiş yolunu gösterdim. Biraz daha açıklamaya çalışıyım.
- 1. Önce vatandaş sayıyı girer bunu bir edit ile yapabiliriz.(örnekte 23)
2. Sonra bu sayıyı nın mod 10 unun alırız. (elimize 3 geldi degisken olarak adina sayi1 diyelim).
3. Önceden tanımladığımız (X) değişkenin sayi1 i atarız x=3 oldu.
4. ilsayımız olan (23) ün bu sefer div 10 unu alırız (elimize 2 geldi degisken olarak sayi2 diyelim)
5. sayi2 yi 4 kere shift left yapariz (bakiniz delphi help shl)
6. X:= x and sayi2;// bu aynı zamanda x:=x+sayi2 oluyor. (değerlerinden dolayı yoksa normalde böyle bir eşitlik söz konusu değil.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim