C#, Asp.Net, .Net Core
C# Programımda Çıkan Değeri Normal Bir Sayıya Dönüştürmek ?
C# Programımda Çıkan Değeri Normal Bir Sayıya Dönüştürmek ?
-
Esquire bunu yazdı
o değer koordinat olmasın.
yok hocam değil koordinat. Aracın hızını arttırıyorum ve hıza bağlı olarak bu sayıda artıyor. Hızı düşürdüğümde sayıda küçülüyor ve tekrar ilk baştaki gibi bir sayıya dönüyor
-
Oyun o değeri sakladığı yeri dinamik olarak belirliyor olabilir. Yani her program açılışında ya da oyunda farklı bir bölüme girdiğinde hız değerini tutan değişkenin adresi değişiyor olabilir. Önce bundan emin olmak lazım. Bu yazdığımı ce ile doğru değer okuduğunu ve ilk kez yazdığın programda doğru değer gösterdiğini farz ederek yazdım.
Bu durumda yapmak gereken her açılışta programın hız verisini nereye yazdığını bulmak.
-
Oyun o değeri sakladığı yeri dinamik olarak belirliyor olabilir. Yani her program açılışında ya da oyunda farklı bir bölüme girdiğinde hız değerini tutan değişkenin adresi değişiyor olabilir. Önce bundan emin olmak lazım. Bu yazdığımı ce ile doğru değer okuduğunu ve ilk kez yazdığın programda doğru değer gösterdiğini farz ederek yazdım.
Bu durumda yapmak gereken her açılışta programın hız verisini nereye yazdığını bulmak.
-
hocam okudugun degeri neyle ceviriyorsun.
http://www.convertdatatypes.com/Convert-Byte-Array-to-float-in-CSharp.html
http://stackoverflow.com/questions/2619664/c-convert-byte-array-into-a-float
sorun cevrimde ise bu sekilde olmasi lazim. ama sorun cevrimde degil de pointer da ise bilemeyecegim.
-
Bana da byte array'i aynen integer'a çevirip basıyorsun gibi geldi.
https://en.wikipedia.org/wiki/Single-precision_floating-point_format
Burayı inceleyip float'a çevirmeni önereceğim. Bir de byte array'in big endian mı little endian mı olduğu da önemli tabi.
-
benim eski bir konum vardı, oradan fikir alabilirsin.
http://www.tahribat.com/forum/hello-world-yazdiramiyorum-yardim-pls-182630
Sen de aynı şekilde elindeki değişkenlerden formul çıkarmaya çalışıyorsun
Not: sanırım imajlar silinmiş ama yinede faydalı bi bilgi çıkabilir belki
HolyOne tarafından 20/Şub/16 14:28 tarihinde düzenlenmiştir -
rakkoc bunu yazdı
hocam okudugun degeri neyle ceviriyorsun.
http://www.convertdatatypes.com/Convert-Byte-Array-to-float-in-CSharp.html
http://stackoverflow.com/questions/2619664/c-convert-byte-array-into-a-float
sorun cevrimde ise bu sekilde olmasi lazim. ama sorun cevrimde degil de pointer da ise bilemeyecegim.
hocam bir class dosyası vardı. Onu ekledim projeye sonra şu kodu yazdım
deger = oku.Int_OKU_Offset(anaAdres + 0xD0FD88, "8+50+36c+40+110+17c");
sonra
textBox1.Text = deger.ToString();
Şunuda denedim
byte[] source = new byte[4];
float myFloat = System.BitConverter.ToSingle(source, deger);ama bu yazdığım koddada hata verdi.
Hatada bu :
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Dizin aralık dışındaydı. Negatif bir değer olmamalı ve koleksiyonun boyutundan daha küçük olmalıdır.
Anlayamıyorum şuan. Bütün algılar kapalı :)
uLtRaLoVeR bunu yazdıBana da byte array'i aynen integer'a çevirip basıyorsun gibi geldi.
https://en.wikipedia.org/wiki/Single-precision_floating-point_format
Burayı inceleyip float'a çevirmeni önereceğim. Bir de byte array'in big endian mı little endian mı olduğu da önemli tabi.
Aynen direk int deger = NFS13.exe'den gelen hız verisi. İnternetten float'ı başka tabanda yazdırdım ama aracın hızına ulaşamadım. Mesela 112381419 sayısını 13lük tabanda yazdım 12ASD543 gibi bir sayı çıktı :D
GodKlaus tarafından 20/Şub/16 15:48 tarihinde düzenlenmiştir -
GodKlaus bunu yazdıuLtRaLoVeR bunu yazdı
Bana da byte array'i aynen integer'a çevirip basıyorsun gibi geldi.
https://en.wikipedia.org/wiki/Single-precision_floating-point_format
Burayı inceleyip float'a çevirmeni önereceğim. Bir de byte array'in big endian mı little endian mı olduğu da önemli tabi.
Aynen direk int deger = NFS13.exe'den gelen hız verisi. İnternetten float'ı başka tabanda yazdırdım ama aracın hızına ulaşamadım. Mesela 112381419 sayısını 13lük tabanda yazdım 12ASD543 gibi bir sayı çıktı :D
Bahsettiğim şeyi python'da yazıp denedim. 112381419 sayısı için 10 üzer, -35 li bir sonuç çıktı. Demek ki farklı bir muhabbet var.
-
uLtRaLoVeR bunu yazdıGodKlaus bunu yazdıuLtRaLoVeR bunu yazdı
Bana da byte array'i aynen integer'a çevirip basıyorsun gibi geldi.
https://en.wikipedia.org/wiki/Single-precision_floating-point_format
Burayı inceleyip float'a çevirmeni önereceğim. Bir de byte array'in big endian mı little endian mı olduğu da önemli tabi.
Aynen direk int deger = NFS13.exe'den gelen hız verisi. İnternetten float'ı başka tabanda yazdırdım ama aracın hızına ulaşamadım. Mesela 112381419 sayısını 13lük tabanda yazdım 12ASD543 gibi bir sayı çıktı :D
Bahsettiğim şeyi python'da yazıp denedim. 112381419 sayısı için 10 üzer, -35 li bir sonuç çıktı. Demek ki farklı bir muhabbet var.
O sayıyı rastgele vermiştim ben. Kesin sayıları şunlar hocam. Daha önceki mesajlarımda vardı 3 adet 0 mph için c# programında okuduğum değerler
hız : 0.04462498799 c# Değeri : 1027000497
hız : 0.04361981899 c# değeri 1026730674
hız : 0.04287611693 c# değeri : 1026531038
-
Konuyu diriltmek gibi olucak ama başardım şuanda :D
kullandığım class'ta bir kaç ufak değişiklik yaptım ve halloldu :D
MPH / KM şeklindede ayrı ayrı gösteriyorum :D
Öyle yazayım dedim :D
edit : Aynen bi hocanın dediği gibi benim elde ettiğim değeri float'a dönüştürmek gerekiyormuş. Zor bela hallettim :D
GodKlaus tarafından 22/Şub/16 16:44 tarihinde düzenlenmiştir