Asm boyutuna inersek. Sign flag belirler.

Hocam daha c yi çzemedik asm inmesek? :D Bu ikisi arasındaki farkı ayırt etmesi için 4 byte dan daha fazla yer kaplaması gerekmez mi? Signed yada unsigned olduğunu belirten bir belirtecin daha bellekte yer kaplaması gerekmez mi?

: Arkadaşlar bildiğiniz gibi c de değişkenler arasında unsigned int ve int bulunmakta. Normalde bu nesnelerden signed int de ilk dijit sayının artı yada eksi olduğunu belirtmektedir rneğin: 10000001=-1 00000001=+1 Ve bildiğiniz gibi unsigned int değişkeninde 8 dijitin tamamı kullanılmaktadır. Bunun yardımıyla pozitif alandan daha fazla sayıyla uğraşmamızı sağlamaktadır. Şimdi sorum şu. Unsigned int de signed int da bellekte 32 bit yani 4 byte yer kapladığına gre. Program bir signed int veri tipini nasıl olupta unsigned int olarak sanmıyor. Yani normalde signed int 1000 0001=-1 olmasına rağmen neden 128+1=129 sanmıyor. (1 byte olmadığını biliyorum rnek olarak yazdım) Sonuçta her ikiside 4 byte yer kaplıyor ve unsigned veya signed olduğunu belirten birşey bulamadım. C ile ilgilenenler bu soruma yanıt verirse çok sevinirim Hocam orda tutulan verinin türü de bi yerde tutuluyor sonuçta.. :) Senin mantıkla gidecek olursak 1 karakter de 1 byte yer kaplıyor, ve sistem 4 bayt'ı neden 4 harf olarak algılamıyor mesela? :) There are 10 types of people in the world. Those who knows binary and those who dont...

Şimdi anladım olayı. Olay tip belirleyicilerinden kaynaklanıyor %u veya %d arasındaki fark. Yani değişkeni okuturken. %d diye okutursan verinin signed olduğu varsayılarak okutuluyor. Ama yok %u dersem unsigned int olduğu varsayılarak okutuluyor. Teşekkürler.

Arkadaşlar bildiğiniz gibi c de değişkenler arasında unsigned int ve int bulunmakta. Normalde bu nesnelerden signed int de ilk dijit sayının artı yada eksi olduğunu belirtmektedir rneğin: 10000001=-1 00000001=+1 Ve bildiğiniz gibi unsigned int değişkeninde 8 dijitin tamamı kullanılmaktadır. Bunun yardımıyla pozitif alandan daha fazla sayıyla uğraşmamızı sağlamaktadır. Şimdi sorum şu. Unsigned int de signed int da bellekte 32 bit yani 4 byte yer kapladığına gre. Program bir signed int veri tipini nasıl olupta unsigned int olarak sanmıyor. Yani normalde signed int 1000 0001=-1 olmasına rağmen neden 128+1=129 sanmıyor. (1 byte olmadığını biliyorum rnek olarak yazdım) Sonuçta her ikiside 4 byte yer kaplıyor ve unsigned veya signed olduğunu belirten birşey bulamadım. C ile ilgilenenler bu soruma yanıt verirse çok sevinirim.

: Hocam daha c yi çzemedik asm inmesek? :D Bu ikisi arasındaki farkı ayırt etmesi için 4 byte dan daha fazla yer kaplaması gerekmez mi? Signed yada unsigned olduğunu belirten bir belirtecin daha bellekte yer kaplaması gerekmez mi Hayır. Bitlere gre bayrak durumu değişiyor zaten. Sen signed yaptığında da unsigned yaptığında da aynı boyutta yer kullanıyorsun zaten. Unsignedsa - lere girmiyorsun. Ama - lere ineceğin kadar fazlasını kullanma imkanın oluyor.

: Şimdi anladım olayı. Olay tip belirleyicilerinden kaynaklanıyor %u veya %d arasındaki fark. Aynen yle hocam :) Eğer ki %s ile basmaya kalkarsan da \0'ın degerini gorene kadar byte byte basar veriyi mesela :) There are 10 types of people in the world. Those who knows binary and those who dont...