İçindekiler:
Video: L'actu vue par Pierre-Emmanuel Barré - C l’hebdo - 14/12/2019 2024
C programlama dilinin sinir bozucu yönlerinden biri C Numeric Data Type Puzzle'dır. Gerçek hayattan farklı olarak, herhangi bir numarayı eterlerden çıkarabilir ve onunla neşesiz bir şekilde mutlu olabilirsiniz, C'de sayıların türüne göre eterlerin belirli bölümlerinden sayıları çekmeniz gerekir. Bu, hayal kırıklığı faktörünün yükselmeye başlamasına neden oluyor, mantıklı bir soru ile "Numara türü nedir? “
Tamam. Bu bir "sayı tipi değil. "Pentagon'da çalışıyorsanız," sayı türü "şeklindeki, numaralı veri türü, şeklindedir. C derleyiciye hangi numarayı kullandığınızı söylemelisin, çünkü sayıları insanların yaptığı gibi farklı düşünüyor. Örneğin, sayı hakkında aşağıdaki hususları bilmelisiniz:
- Kesirli veya ondalık kısım olmadan tam sayı mı olacak?
- Sayı ne kadar büyük olacak (değer olarak - büyük, sayfa büyük değil - büyük)?
- Numara kesirli bir parçaya sahipse sayı ne kadar hassas olmalı? (Binlerce, milyonlarca veya on beşli ondalık basamak gibi Bilim adamları, hiç kimsenin gitmediği yere gitmek için uzaya roket gönderdiklerinde bu hassaslığı öğrenmek zorundalar.)
Evet, hepsi size yabancıdır. Çoğu programcı yapmak istemek "Bir sayıya ihtiyacım var - hemen bana bir tane verin - bu değer bilgisayarın arkasından kaybolmadan hükümet istatistiğine dönüşür! "Ancak bunu yapmadan önce biraz daha düşünmek zorundasın.
C çeşitli sayı türlerini kullanır - farklı sayısal veri türleri yani konuşur. Tablo 1 hepsini diğer istatistiksel bilgilerle birlikte listeler. Bu tablo, yalnızca gerçek insanın hepsini ezberleyeceği için defalarca atıfta bulunacağınız bir şeydir.
Satır
Satır |
Satır |
-128 - 127 |
Satır |
Satır |
Satır |
1 bayt |
int |
tam sayı |
-32768 - 32, 767 |
2 bayt |
kısa ( |
veya kısa int) kısa tam sayı |
-32768 ile 32, 767 |
2 bayt |
uzun |
uzun tam sayı |
-2, 147, 483, 648 - 2, 147, 483, 647 |
4 bayt |
unsigned char |
unsigned karakter |
0 - 255 |
1 bayt |
unsigned int |
unsigned integer |
0 - 65, 535 |
2 bayt |
unsigned short |
unsigned short integer |
0 unsigned long integer |
0 ila 4, 294, 967, 295 |
4 bayt |
float |
tek duyarlıklı kayan nokta (doğru 7 basamaklı) |
+ veya -3. 4 x 10 |
38 |
ila + veya -3. 4 x10 |
-38 |
4 bayt çift çift kesinlikli kayan nokta (15 haneli doğru) + veya -1.7 x 10 -308 |
ila + veya -1 arasındadır. 7 x10 |
308 |
8 bayt |
anahtar kelime , değişken türünü bildirmek için kullanılan C dili anahtar kelimedir. |
değişken |
- türü, anahtar kelimenin hangi değişken türünü tanımladığını bildirir. Örneğin, char bir karakter (veya dize) değişkenini tanımlar;
- int tamsayılar yapar; ve bunun gibi. Birçok değişken türü vardır, bunların her biri açıklanan sayı veya değer türüne bağlıdır. aralığı , bir sayının büyüklüğünün değişken türüne nasıl sığacağını belirtir. Örneğin, tamsayılar -32, 768 ila 0 ve tekrar 32 ile 767 arasında değişir. Diğer değişken türleri daha büyük değerleri işler. Depolama Gerekli sütunu, her değişken türünün kaç baytlık depolama alanını gerektirdiğini belirtir. Bu, gelişmiş şeyler, bilmek gerekli değildir. Bazı bilgisayar bilimcileri, gerekli baytlara bakabilir ve "İyilik! Bir bilgisayardaki bir tam sayı 16 bitlik bir depolama alanı kaplar. Bu 32K aralığını açıklamak zorundadır. Aslında. Hmmm. Nachoları geçin. " Neden tam sayıları kullanıyorsunuz?
- Açıkçası, aslında, 1 gazillion'a kadar olan sayıları işleyebilen çift duyarlıklı bir kayan nokta sayıya sahipseniz, neden cezalandırılmış küçük tam sayı ile uğraşıyorsunuz? Heck, her şeyi iki kat daha kayan bir kayan nokta yapın ve onunla yapın! Kulağa iyi geliyor. Kötüdür. Tamsayılar gerçekten sayısal değişkenlerin en yaygın ve kullanışlı türleri. Genellikle programlama yaparken yalnızca küçük, tam sayı değerlerine ihtiyacınız vardır. Kayan nokta numaraları iyi, ancak bilgisayardan daha fazla yük gerektirir ve birlikte çalışmak daha uzun sürer. Karşılaştırma yaparak, tam sayıları çok daha hızlıdır. Normal tam sayı -
- int
- ve uzun tamsayı -
uzun
olmak üzere yalnızca iki tür tamsayı ile ilgilenmek zorundasınız.
int , -32, 768 ila 32, 767 arasında değişen tamsayı bir değerdir. Kesin olmayan küçük sayılar için ideal bir çözümdür. C'nin bazı sürümlerinde, bu değeri bir kısa veya
kısa int olarak anabilirsiniz. Tüm DOS C derleyicilerinde yalnızca int adı verilir. uzun , -2, 147, 483, 648'den 2'ye, 147'ye, 483'e, 647'ye kadar değişen tamsayı bir değerdir - büyük bir aralıktır, ancak milli borç veya Madonna'nın ego'sunu kapsayacak kadar büyük değil. Bu tür sayısal değişken, C'nin bazı sürümlerinde uzun veya
uzun int olarak adlandırılır. DOS C derleyicilerinde, yaklaşık olarak uzun . int üzerinden uzunluktaki 'yı her zaman kullanmak isteyen, insanlığın boyutuyla olan takıntılılığını devam ettirirken - açıkçası, açgözlü - açıkça görülebilir. Sonuçta, daha büyük daha iyidir. Her ne kadar bu doğru olabilse de ve psikologlar çoğu insanın bu şekilde hissettiklerini tartışabilmesine rağmen, gerçeği, programınız ne kadar hızlı çalışırsa edinebileceğiniz değişken türü o kadar küçüktür.
int değişkenleri, bilgisayarın iki baş parmağını kullanması kolay, küçük ve derli topludur. uzun değişkenleri hesaplamak biraz daha zaman gerektirir ve int ile daha iyi durumda olduğunuzda bunları kullanmak için bilgisayarın belleğini ve işlem gücünü bozar.(C'de programlamaya devam etmek için bunun nedenini anlarsınız.) Tamsayı değişkenleri bildirmek için int ve uzun anahtar kelimeler kullanın.
- int küçük değerler içindir; uzun daha büyük değerler içindir. % i yer tutucusu int değişkenlerini görüntülemek için
- printf işlevinde kullanılır. ( % d yer tutucuyu da kullanabilirsiniz.) int = short = kısa int Tamsayı değişkenleri ( int ) bilgisayar için daha kısa, daha hızlı ve kolay başa çıkmak için. Bir için
- Çorba bir değişken olsaydı,
- int olurdu. Küçük, tam sayısal bir değere ihtiyacınız olduğunda int s değerlerini kullanın. Negatif sayılar - neden rahatsız oluyor? Bazen onlara ihtiyacın var, ama çoğu zaman yapmıyorsun. char değişken türü, bir tamsayı türü olarak da kullanılabilir, ancak son derece küçük bir aralığı vardır. Bu değişkenler çoğunlukla tek karakterleri (veya dizeleri) depolamak için kullanılır.