1

Konu: integer değerin ram'de tutulan hali

merhaba

arakadaşlar bir integer değerin ram 'de tutuldugu halini nasıl elde edebilrim
ör 125  rakakamının ram' deki hali 
bunu 1 byt olarak elde etmem gerekiyor.    C de sanırım pointer  değeri olması gerekiyordu.

ör :2342         >  deger 4 haneye cıkarsa tabı bu 2 byt oluyor.

tesekkurler

2

Re: integer değerin ram'de tutulan hali

16'lık düzen için windows hesap makinesini denedin mi?

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

3

Re: integer değerin ram'de tutulan hali

Sen once neyi sorduguna karar vermelisin. Integer degerin RAM'deki hali dersen:

Visual Fox Pro
lcRAMdekiHali = bintoc( 125, '4RS' )

125'i tek byte olarak istiyorsan, degisik yollari var:

Visual Fox Pro
lcByte125 = chr(125)

lcByte125 = bintoc( 125, '1RS' )

Not: 256 olsa yine 2 byte olacak. Bir byte = 8 bit. 256 = 2^8 = 2 byte.

4

Re: integer değerin ram'de tutulan hali

evet istedigim aşağıdaki tesekkurler .
yanlız  4RS ne anlama geliyor paramtreler içinde sadece 1 2 ve 4 var
zaten     4RS hata veriyor


lcRAMdekiHali = bintoc( 125, '4RS' )

5

Re: integer değerin ram'de tutulan hali

doğru, 255'lik sayı düzeni varken neden 16'lığı kullansın.

help'e bak ben r s parametrelerini buldum ve hata da vermedi.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

6

Re: integer değerin ram'de tutulan hali

VFP versiyonunu yukselt hata vermez o zaman. "Hata verdi" denmez zaten, "....." diye bir hata mesaji verdi denir.

7

Re: integer değerin ram'de tutulan hali

Evet çetin abi versiyondan fark ediyormuş.

fiyat=22.11

9.0 da
BINTOC(0000221100,'4S')    bu şekilde istedigim degeri elde ediyorum

fakat

8.0 da aşagıdakı gıbı kullanabılıyorum ama aynı degeri vermiyor. bunu 8.0da elde etmem mumkunmu
BINTOC(0000221100,4)

farkı oluşturan S parametresi

tesekkurler

8

Re: integer değerin ram'de tutulan hali

Mumkun.

9

Re: integer değerin ram'de tutulan hali

petkomahmet yazdı:

Evet çetin abi versiyondan fark ediyormuş.

fiyat=22.11

9.0 da
BINTOC(0000221100,'4S')    bu şekilde istedigim degeri elde ediyorum

fakat

8.0 da aşagıdakı gıbı kullanabılıyorum ama aynı degeri vermiyor. bunu 8.0da elde etmem mumkunmu
BINTOC(0000221100,4)

farkı oluşturan S parametresi

tesekkurler

bintoc olmadan da yapabilirsin. nasıl 10 luk sayı düzeninden 2liğe veya 16 lığa çeviriyorsan. 255 liğe çevireceksin.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

10

Re: integer değerin ram'de tutulan hali

Nasıl eldeedebirilirim acaba

11

Re: integer değerin ram'de tutulan hali

255'lik?????

Visual Fox Pro
Function Num2Char

lparameters tnNum, tnSize
tnSize = Evl(m.tnSize,4)
Local ix,lcnum
lcNum = ''
For ix=1 to m.tnSize
    lcNum = m.lcNum + Chr(int(m.tnNum/(256^(m.ix-1)))%256)
endfor
return m.lcNum

12

Re: integer değerin ram'de tutulan hali

int uzeri degerlerde calismaz.

13

Re: integer değerin ram'de tutulan hali

Bu daha iyi, mantigi gosteriyor:

Visual Fox Pro
Function Num2Char2

lparameters tnNum, tnSize
tnSize = Evl(m.tnSize,4)
Local ix,lcnum
lcNum = ''
For ix=1 to m.tnSize
    lcNum = m.lcNum + Chr(Bitand(m.tnNum,0xFF))
    tnNum = Bitrshift(m.tnNum, 8)
endfor
return m.lcNum

14

Re: integer değerin ram'de tutulan hali

Tam istediğim gibi .çok teşekkürler

15

Re: integer değerin ram'de tutulan hali

bi problem  daha cıktı
xx=bintoc(0000341200,'4S')

İLE
xx=Num2Char(0000341200)

STRCONV(xx,15) ile bakınca farklı degerleri veriyor

16

Re: integer değerin ram'de tutulan hali

mesela
ikinci örnekte aldıgım  deger görünen halini 
wait window ile grebiliyorum   fakat   
'4S'  ile aldıgım degeri wait window ile göremiyorum

17

Re: integer değerin ram'de tutulan hali

metin abi bintoc komutu bunun için oldugu için en matıklısı onu kullanmak .çetinabi  funcsion yazmıs işimi çözdü fakat  strconv baktıgımda karşılıgı  farklı çıkıyor .    9.0. deki bintoc(deger,'4S') den farklı bir değer veriyor.

metin yazdı:
petkomahmet yazdı:

Evet çetin abi versiyondan fark ediyormuş.

fiyat=22.11

9.0 da
BINTOC(0000221100,'4S')    bu şekilde istedigim degeri elde ediyorum

fakat

8.0 da aşagıdakı gıbı kullanabılıyorum ama aynı degeri vermiyor. bunu 8.0da elde etmem mumkunmu
BINTOC(0000221100,4)

farkı oluşturan S parametresi

tesekkurler

bintoc olmadan da yapabilirsin. nasıl 10 luk sayı düzeninden 2liğe veya 16 lığa çeviriyorsan. 255 liğe çevireceksin.

18 Son düzenleyen, petkomahmet (09.02.2012 18:55:07)

Re: integer değerin ram'de tutulan hali

halletim çetin abi çok teskkurler .
Aşagıdakı kodda kucuk bir değişiklik yaptım.
lcNum = m.lcNum + Chr(int(m.tnNum/(256^(m.ix-1)))%256)

yerine
lcNum = Chr(int(m.tnNum/(256^(m.ix-1)))%256)+m.lcNum


cetinbasoz yazdı:

255'lik?????

Visual Fox Pro
Function Num2Char

lparameters tnNum, tnSize
tnSize = Evl(m.tnSize,4)
Local ix,lcnum
lcNum = ''
For ix=1 to m.tnSize
    lcNum = m.lcNum + Chr(int(m.tnNum/(256^(m.ix-1)))%256)
endfor
return m.lcNum

19

Re: integer değerin ram'de tutulan hali

petkomahmet yazdı:

halletim çetin abi çok teskkurler .
Aşagıdakı kodda kucuk bir değişiklik yaptım.
lcNum = m.lcNum + Chr(int(m.tnNum/(256^(m.ix-1)))%256)

yerine
lcNum = Chr(int(m.tnNum/(256^(m.ix-1)))%256)+m.lcNum


arada ki fark ne ? terim yer degistirse bile sonuc nasil degisebiliyor  ?
a=(b*c)+d ile       a=d+(b*c) arasinda fark olmamasi gerekir ?

20

Re: integer değerin ram'de tutulan hali

sonuç farklı bir karekter yapısında oluşuyor.
belki toplamda aynı sonuc oluyor ama onu dosyaya yazıp istenilen cihaz üzerinde  kullanınca. cihaz hataya düşüyor

21

Re: integer değerin ram'de tutulan hali

petkomahmet yazdı:

sonuç farklı bir karekter yapısında oluşuyor.
belki toplamda aynı sonuc oluyor ama onu dosyaya yazıp istenilen cihaz üzerinde  kullanınca. cihaz hataya düşüyor

dogru ..ben  sonucu numerik sandim..o yuzden aklim ermedi.. sonucta bir string tabi..
yaslandim artik..dikkat eksikligi basgosterdi..

22

Re: integer değerin ram'de tutulan hali

Aydin,
Soru bastan yanlisti demek istiyor. Yanlis yapmis ama kendisi icin dogru olmus. RAMdeki hali tabii ki o sekilde degil, Num2Char ve Num2Char2 benim yazdigim halleriyle dogru. Kullanirsan degistirme. Bu suna benziyor:

1 - X
2 - Y
3 - Z

sembolleriyle gosteriliyorsa:

XYZ kactir? Dogru cevap soldan saga mi, sagdan sola mi okuduguna bagli. Cevabi kendisine uydurmak icin kurallari kafasina gore degistirmis:)

23

Re: integer değerin ram'de tutulan hali

çetin abi 
9.0 da bintoc(123,"4S") normal olarak cihazın kabul ettiği gibi değeri üretiyor.
vede normal olarak herzamankı gıbı soldan sağa okuyorum cihazda zaten bunu kabul ediyor
ama
num2char ve bana ilk sordugumda yazdıgın  cevaptada    bintoc(125,'4RS')  örnegini verdin.
burdaki R aksi yön anlamına geliyor sanırım . çünki R kaldırsam soldan sağa deger veriyor. R eklenırse tam aksi yöne ceviriyor

bunu R kullanarak ters cevirmedeki sebep ne acaba?

24

Re: integer değerin ram'de tutulan hali

RAM'de tutuldugu gibi demistin. Orada kural sagdan sola okumak. RAM'de oyle tutuluyor. PC kullaniyorsan oyle. Little Endian, big endian sistemleri arastir.

25

Re: integer değerin ram'de tutulan hali

Tamam tesekkurler