bugün
- laik teyzelerin fenotipi20
- nuh ve tufan hikayesinin tora daki kıssası6
- türkiyede genç siyasetçi olmaması4
- yeni parti8
- sarapci koala8
- anahtar partisi büyük birlik partisi ittifakı7
- tayyip erdoğan'a oy vermeye karar vermek8
- iyi parti zafer partisi ittifakı4
- arkadaşlar kararsız kaldım hangisini alayım16
- mansur yavaş6
- ak partililerin apo sevdası6
- gömlek değiştirir gibi ideoloji değiştiren tip4
- ellerim bos gonlum hos12
- pozcu3
- ibrahim peygamberin tora daki kıssası2
- velvet gel sana bir kahve ısmarlayayım7
- naber lan ibne2
- sözlüğün en güzel kız yazarı9
- yavru kediye tekme atmak4
- hukuk okuyan tiplerin biraz ezik olması9
- tavuk şiş4
- hande erçel'in giydiği beyaz elbise4
- flörtte regex kullanımı2
- yazarların kulaklığında şu an çalan şarkı5
- kadınların şiirden anlamaması6
- gürcistan5
- zengin bir erkekle evlenmek isteyen kadınlar2
- hull city2
- bir seri katilin tarzını taklit eden katil6
- islam barış dinidir11
- 1948 arap israil savaşı12
- goralı3
- pape matar sarr2
- maden işçilerinin ankara direnişi4
- yazarların favori oyun karakteri15
- kimsenin kılığına kıyafetine karışmamak4
- galericiler battı mutlu musunuz5
- ne mutlu türküm diyene3
- temas bağımlılığı5
- ermeni soykırımına inanmak2
- akp mhp pkk koalisyonu2
- sözlük kızlarının boş teneke olması3
- sürekli peki neyse diyen kız5
- pazar pazar kafa açan ergen yazar sorunları2
- palamut4
- sabah ezanı okunurken köpeklerin havlaması6
- ak çomarların beslenme kalitesi2
- mason greenwood4
- kızılcahamam maden suyu2
- lahmacun2
while(1) ve while(10) arasında bariz farklar bulunmaktadır.
örnek: while 1 sonsuz bir döngüyü temsil eder. zaten başlangıç değeri 1 olur. true'nun 1, 5, 10, 100, 10.5, -1, -2, -3, -4, -5, -10.5 gibi değerler aldığını söylemek gerekiyor.
o yüzden true, 0 olmayan her durum demek. bu da while'ı o durumda sonsuz döngü yapıyor.
nasıl yani 0 olmayan her durum der iseniz:
0 tanımsız olduğundan negatif olarak geliyor. yok edici, yutan, nan gibi. hatta sıfırın kesirli hali dahi false çıktısı verir.
0.0 ile 0 arasında da fark yoktur. while her 0 durumunu false olarak kabul eder ve işlem yapmaz.
x > 0 durumlarında ise olay değişiyor:
while(1) durumu için:
1 = 00000001
while(10) durumu için:
10 = 00001010
o zaman burada bariz fark ortaya çıkmakta. gördüğümüz gibi bitsel karşılıkları farklı. bunların assembly ortamında akış kontrolünü sağlayan jmp instruction'ı performansı eğer ki optimizasyon etmezseniz milisaniyelik gecikmelere sebebiyet verir.
1 = 00000001 -> kontrol et başa dön.
10 = 0000101[0] -> kontrol et başa dön.
10 = 000010[1]0 -> kontrol et başa dön.
10 = 00001[0]10 -> kontrol et başa dön.
10 = 0000[1]010 -> kontrol et başa dön.
bit bit kontrol var. yazmaç 32 bitlik ise bu kontrol tek seferde yapıldığından(lojik devrelerde tek saat çevriminde üretebilir) while 1 durumunda yapılan call ile while 10 durumunda yapılan call farklı olacaktır. sistem kaynağı tüketme konusunda biraz daha fazla kaynak tüketilecektir.
peki ne olursa olsun nasıl oluyor da true oluyor?
eğer ki bir break koymazsanız 10 daima true oluyor. bu durumda while 10'un adresi jmp instruction'ı oluyor. jmp instruction'ına kendi adresini tanımlarsanız sonsuz döngü oluşur.
diyelim ki while(10)
her defasında 1 artırılan değişken var.
if değişken 10 ise
break;
değişkeni ++
o durumda jmp end olduğundan bitiyor. o ana kadar sürekli jmp L20 git oralara işte. (l20 burada rastgele bir örnek)
böyle bir while anım oldu işte.
düzenlemek gerekiyor dediler ak kafası gibi davrananlar varmış. laf sokuyormuş. bu bilgiyi ihtiyacı olan görüp alır belki.
örnek: while 1 sonsuz bir döngüyü temsil eder. zaten başlangıç değeri 1 olur. true'nun 1, 5, 10, 100, 10.5, -1, -2, -3, -4, -5, -10.5 gibi değerler aldığını söylemek gerekiyor.
o yüzden true, 0 olmayan her durum demek. bu da while'ı o durumda sonsuz döngü yapıyor.
nasıl yani 0 olmayan her durum der iseniz:
0 tanımsız olduğundan negatif olarak geliyor. yok edici, yutan, nan gibi. hatta sıfırın kesirli hali dahi false çıktısı verir.
0.0 ile 0 arasında da fark yoktur. while her 0 durumunu false olarak kabul eder ve işlem yapmaz.
x > 0 durumlarında ise olay değişiyor:
while(1) durumu için:
1 = 00000001
while(10) durumu için:
10 = 00001010
o zaman burada bariz fark ortaya çıkmakta. gördüğümüz gibi bitsel karşılıkları farklı. bunların assembly ortamında akış kontrolünü sağlayan jmp instruction'ı performansı eğer ki optimizasyon etmezseniz milisaniyelik gecikmelere sebebiyet verir.
1 = 00000001 -> kontrol et başa dön.
10 = 0000101[0] -> kontrol et başa dön.
10 = 000010[1]0 -> kontrol et başa dön.
10 = 00001[0]10 -> kontrol et başa dön.
10 = 0000[1]010 -> kontrol et başa dön.
bit bit kontrol var. yazmaç 32 bitlik ise bu kontrol tek seferde yapıldığından(lojik devrelerde tek saat çevriminde üretebilir) while 1 durumunda yapılan call ile while 10 durumunda yapılan call farklı olacaktır. sistem kaynağı tüketme konusunda biraz daha fazla kaynak tüketilecektir.
peki ne olursa olsun nasıl oluyor da true oluyor?
eğer ki bir break koymazsanız 10 daima true oluyor. bu durumda while 10'un adresi jmp instruction'ı oluyor. jmp instruction'ına kendi adresini tanımlarsanız sonsuz döngü oluşur.
diyelim ki while(10)
her defasında 1 artırılan değişken var.
if değişken 10 ise
break;
değişkeni ++
o durumda jmp end olduğundan bitiyor. o ana kadar sürekli jmp L20 git oralara işte. (l20 burada rastgele bir örnek)
böyle bir while anım oldu işte.
düzenlemek gerekiyor dediler ak kafası gibi davrananlar varmış. laf sokuyormuş. bu bilgiyi ihtiyacı olan görüp alır belki.
Gündemdeki Haberler
Güncel Önemli Başlıklar