Bu yüzden bayt dizisinden 12 bit tamsayı okuyorum. Bu sayı negatif olabilir ancak bunu C# 'da kullanılabilir bir int16/int32 değişkenine nasıl dönüştürebileceğimi anlayamıyorum. Bir his var Ben biraz değişiklik veya diğer bitwise işlemleri ile bir şeyler yapmak gerekecek ama ben şimdiye kadar çok çarpıcı oldum. Birisi bana doğru yönde işaret edebilir.12 bit int 16 veya 32 bit dönüştür
var x = 0xFFF;
Bu, -1 olarak yazdırılır, ancak C# doğal olarak bir int32'ye yayınlanır ve 4095 olarak yazdırılır. Bu int16 veya int32'ye aktarılırsa, negatif değeri nasıl koruyabilirim.
Harika çalışıyor, çok teşekkürler! Burada neler olduğunu açıklayan akıl mı? ne olduğunu biliyorum >> ama tam olarak anlaşılmıyor. – Clarke76
Temel olarak yalnızca işaret bitine kadar sağa kayıyor. Sıfır ise, o zaman orijinal değeri döndürürüz. Eğer 1 ise o zaman -1 (0xFFFFFFFF), alt 12 biti ('xor'), daha sonra' ya da 'bitleri açmak için orjinal değerini kapatıyoruz. Sonuç temel olarak sadece 32 bitlik değerin üst 20 biti açılmaktadır. –
Evet ... her şeyi kağıda yazıyorum ve ne olduğunu tam olarak gördüm. Bu gerçekten yardımcı oldu. Bunun için son biti negatif bir bayrak olarak kullanılacaktır. Bundan sonra takip etmek kolaydı. Tekrar teşekkürler. – Clarke76