<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.operators.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.operators.bitwise.php',
    1 => 'Bitsel',
    2 => 'Bitsel İşle&ccedil;ler',
  ),
  'up' => 
  array (
    0 => 'language.operators.php',
    1 => 'İşle&ccedil;ler',
  ),
  'prev' => 
  array (
    0 => 'language.operators.assignment.php',
    1 => 'Atama',
  ),
  'next' => 
  array (
    0 => 'language.operators.comparison.php',
    1 => 'Karşılaştırma',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/operators/bitwise.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.operators.bitwise" class="sect1">
 <h2 class="title">Bitsel İşleçler</h2>
 
 <p class="simpara">
  Bitsel işleçler, bir tamsayının içindeki belli bitleri 0 ya da 1
  yaparlar.
 </p>

 <table class="doctable table">
  <caption><strong>Bitsel İşleçler</strong></caption>
  
   <thead>
    <tr>
     <th>Örnek</th>
     <th>İsim</th>
     <th>Sonuç</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td><strong class="userinput"><code>$a &amp; $b</code></strong></td>
     <td>Ve</td>
     <td>Hem <var class="varname">$a</var> hem de <var class="varname">$b</var>&#039;de 1 olan
     bitler sonuçta 1 yapılır.</td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a | $b</code></strong></td>
     <td>Veya</td>
     <td><var class="varname">$a</var> veya <var class="varname">$b</var>&#039;de 1 olan
     bitler sonuçta 1 yapılır.</td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a ^ $b</code></strong></td>
     <td>Ayrıcalıklı Veya</td>
     <td>
      Hem <var class="varname">$a</var> hem de <var class="varname">$b</var>&#039;de 0 veya 1
      olan bitler sonuçta 0, diğerleri 1 yapılır.
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>~ $a</code></strong></td>
     <td>Değil</td>
     <td>
      <var class="varname">$a</var>&#039;nın 0 olan bitleri 1, 1 olanları 0 yapılır.
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &lt;&lt; $b</code></strong></td>
     <td>Sola kaydırma</td>
     <td>
      <var class="varname">$a</var>&#039;nın bitleri <var class="varname">$b</var> adım sola
      kaydırılır (her adım ikiyle çarpma işlemine denktir).
     </td>
    </tr>

    <tr>
     <td><strong class="userinput"><code>$a &gt;&gt; $b</code></strong></td>
     <td>Sağa kaydırma</td>
     <td>
      <var class="varname">$a</var>&#039;nın bitleri <var class="varname">$b</var> adım sağa
      kaydırılır (her adım ikiye bölme işlemine denktir).
     </td>
    </tr>

   </tbody>
  
 </table>

 <p class="para">
  PHP&#039;de bit kaydırma bir aritmetik işlemdir. Kaydırma sonucu her iki uçtan
  da taşan bitler silinir. Sola kaydırmada sağdan eksilen bitler sıfırlarla
  doldurulur, bu arada işaret biti soldan taşarak silinir, yani sola
  kaydırmada terimin işareti korunmaz. Sağa kaldırmada ise işaret biti
  yerinden oynatılmaz, yani sağa kaydırmada terimin işareti korunur.
 </p>
 <p class="para">
  Bir işlemin <a href="language.operators.precedence.php" class="link">öncelik</a>
  alması gerekiyorsa yaylı ayraçlar kullanılmalıdır. Örneğin, <code class="literal">$a
  &amp; $b == true</code> işleminde önce eşitlik sonra bitsel VE
  uygulanırken <code class="literal">($a &amp; $b) == true</code> işleminde ise
  önce bitsel VE sonra eşitlik uygulanır.
 </p>
 <p class="para">
  Eğer <code class="literal">&amp;</code>, <code class="literal">|</code> ve
  <code class="literal">^</code> için her iki terim de dize ise terimlerdeki
  karakterlerin ASCII değerleri üzerinde işlem yapılır ve sonuç bir dize
  olur. Tüm diğer durumlarda, her iki terim <a href="language.types.integer.php#language.types.integer.casting" class="link">tamsayıya dönüştürülür</a>
  ve sonuç tamsayı olur.
 </p>
 <p class="para">
  <code class="literal">~</code> işleci için terim bir dize ise, terimdeki
  karakterlerin ASCII değerleri üzerinde işlem yapılır ve sonuç bir dize
  olur. Aksi takdirde, terim ve sonuç tamsayı olarak ele alınır.
 </p>
 <p class="para">
  <code class="literal">&lt;&lt;</code> ve <code class="literal">&gt;&gt;</code> işleçleri için
  her iki terim ve sonuç daima tamsayı olarak ele alınır.
 </p>
<p class="para">
  <div class="informalexample">
   <p class="para">
    <pre class="literallayout">
PHP&#039;nin error_reporting yönergesi gerçekte neler olup bittiğini göstermek
için bitsel değerler kullanır. Sadece bilgilendirmeleri değil hataların
tümünü görmek için php.ini dosyasında ilgili yere şu yazılabilir:
<strong class="userinput"><code>E_ALL &amp; ~E_NOTICE</code></strong>
    </pre>
   </p>
   <p class="para">
    <pre class="literallayout">
Bu E_ALL için şöyle çalışır:
<strong class="userinput"><code>00000000000000000111011111111111</code></strong>
Keza E_NOTICE...
<strong class="userinput"><code>00000000000000000000000000001000</code></strong>
... ve <code class="literal">~</code> ile ters çevrilerek:
<strong class="userinput"><code>11111111111111111111111111110111</code></strong>
Son olarak, her iki değer üzerinde etkin bitleri bulmak için
VE (&amp;) işlecini kullanır:
<strong class="userinput"><code>00000000000000000111011111110111</code></strong>
    </pre>
   </p>
   <p class="para">
    <pre class="literallayout">
Bunu sağlamanın bir başka yolu da sadece bir değerde veya diğerinde etkin
bitleri bulmak için XOR (<code class="literal">^</code>) kullanmaktır:
<strong class="userinput"><code>E_ALL ^ E_NOTICE</code></strong>
    </pre>
   </p>
  </div>
 </p>
 <p class="para">
  <div class="informalexample">
   <p class="para">
    <pre class="literallayout">
error_reporting yönergesi bitleri etkin kılmayı göstermek için de
kullanılabilir. Sadece hataları ve kurtarılabilir göstermenin yolu:
<strong class="userinput"><code>E_ERROR | E_RECOVERABLE_ERROR</code></strong>
    </pre>
   </p>
   <p class="para">
    <pre class="literallayout">
Bu işlem etkin bitleri almak için
<strong class="userinput"><code>00000000000000000000000000000001</code></strong>
ve
<strong class="userinput"><code>00000000000000000001000000000000</code></strong>
E_ERROR&#039;ları üzerinde VEYA (<code class="literal">|</code>) işlecini kullanır:
<strong class="userinput"><code>00000000000000000001000000000001</code></strong>
    </pre>
   </p>
  </div>
 </p>
 <p class="para">
  <div class="example" id="example-1">
   <p><strong>Örnek 1 - Tamsayılar üzerinde bitsel işlemler</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br /> * Üstteki bölümü yoksay,<br /> * çıktıyı iyileştirmek için biçemlemekten başka birşey yapmıyor.<br /> */<br /><br /></span><span style="color: #0000BB">$format </span><span style="color: #007700">= </span><span style="color: #DD0000">'(%1$2d = %1$04b) = (%2$2d = %2$04b)'<br />        </span><span style="color: #007700">. </span><span style="color: #DD0000">' %3$s (%4$2d = %4$04b)' </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br />echo &lt;&lt;&lt;EOH<br /></span><span style="color: #DD0000"> ---------     ---------  -- ---------<br />   sonuç         değer    işl   dnm<br /> ---------     ---------  -- ---------<br /></span><span style="color: #007700">EOH;<br /><br /><br /></span><span style="color: #FF8000">/*<br /> * Örnekler burada.<br /> */<br /><br /></span><span style="color: #0000BB">$değerler </span><span style="color: #007700">= array(</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">8</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$dnm </span><span style="color: #007700">= </span><span style="color: #0000BB">1 </span><span style="color: #007700">+ </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"\n Bitsel VE \n"</span><span style="color: #007700">;<br />foreach (</span><span style="color: #0000BB">$değerler </span><span style="color: #007700">as </span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$sonuç </span><span style="color: #007700">= </span><span style="color: #0000BB">$değer </span><span style="color: #007700">&amp; </span><span style="color: #0000BB">$dnm</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #0000BB">$format</span><span style="color: #007700">, </span><span style="color: #0000BB">$sonuç</span><span style="color: #007700">, </span><span style="color: #0000BB">$değer</span><span style="color: #007700">, </span><span style="color: #DD0000">'&amp;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$dnm</span><span style="color: #007700">);<br />}<br /><br />echo </span><span style="color: #DD0000">"\n Bitsel Ayrıcalıklı VEYA \n"</span><span style="color: #007700">;<br />foreach (</span><span style="color: #0000BB">$değerler </span><span style="color: #007700">as </span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$sonuç </span><span style="color: #007700">= </span><span style="color: #0000BB">$değer </span><span style="color: #007700">| </span><span style="color: #0000BB">$dnm</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #0000BB">$format</span><span style="color: #007700">, </span><span style="color: #0000BB">$sonuç</span><span style="color: #007700">, </span><span style="color: #0000BB">$değer</span><span style="color: #007700">, </span><span style="color: #DD0000">'|'</span><span style="color: #007700">, </span><span style="color: #0000BB">$dnm</span><span style="color: #007700">);<br />}<br /><br />echo </span><span style="color: #DD0000">"\n Bitsel Ayrıcalıklı VEYA (XOR) \n"</span><span style="color: #007700">;<br />foreach (</span><span style="color: #0000BB">$değerler </span><span style="color: #007700">as </span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$sonuç </span><span style="color: #007700">= </span><span style="color: #0000BB">$değer </span><span style="color: #007700">^ </span><span style="color: #0000BB">$dnm</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #0000BB">$format</span><span style="color: #007700">, </span><span style="color: #0000BB">$sonuç</span><span style="color: #007700">, </span><span style="color: #0000BB">$değer</span><span style="color: #007700">, </span><span style="color: #DD0000">'^'</span><span style="color: #007700">, </span><span style="color: #0000BB">$dnm</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
 ---------     ---------  -- ---------
   sonuç         değer    işl   dnm
 ---------     ---------  -- ---------
 Bitsel VE
( 0 = 0000) = ( 0 = 0000) &amp; ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) &amp; ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) &amp; ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) &amp; ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) &amp; ( 5 = 0101)

 Bitsel Ayrıcalıklı VEYA
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Bitsel Ayrıcalıklı VEYA (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)
</pre></div>
   </div>
  </div>
 </p>
 <p class="para">
  <div class="example" id="example-2">
   <p><strong>Örnek 2 - Dizgeler üzerinde bitsel işlemler</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">12 </span><span style="color: #007700">^ </span><span style="color: #0000BB">9</span><span style="color: #007700">; </span><span style="color: #FF8000">// '5' çıktılar<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"12" </span><span style="color: #007700">^ </span><span style="color: #DD0000">"9"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Gerisilme karakterini çıktılar (ASCII 8)<br />                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) =  ASCII 8<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"hallo" </span><span style="color: #007700">^ </span><span style="color: #DD0000">"hello"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Çıktılanan ASCII değerler #0 #4 #0 #0 #0<br />                        // 'a' ^ 'e' = #4<br /><br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">2 </span><span style="color: #007700">^ </span><span style="color: #DD0000">"3"</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1 çıktılar<br />              // 2 ^ ((int) "3") == 1<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"2" </span><span style="color: #007700">^ </span><span style="color: #0000BB">3</span><span style="color: #007700">; </span><span style="color: #FF8000">// 1 çıktılar<br />              // ((int) "2") ^ 3 == 1<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  <div class="example" id="example-3">
   <p><strong>Örnek 3 - Tamsayılarda bit kaydırma</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br /> * Bunlar örnektir.<br /> */<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"\n--- POZİTİF TAMSAYILARDA SAĞA BİT KAYDIRMA ---\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'işaret bitinin kopyası sola kaydırıldı'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'bitler sağa kaydırıldı'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'yukarıdakiyle aynı; 0\'dan sonrası kaydırılamaz'</span><span style="color: #007700">);<br /><br /><br />echo </span><span style="color: #DD0000">"\n--- NEGATİF TAMSAYILARDA SAĞA BİT KAYDIRMA ---\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= -</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'işaret bitinin kopyası sola kaydırıldı'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= -</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'bitler sağa kaydırıldı'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= -</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&gt;&gt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'yukarıdakiyle aynı; -1\'dan sonrası kaydırılamaz'</span><span style="color: #007700">);<br /><br /><br />echo </span><span style="color: #DD0000">"\n--- POZİTİF TAMSAYILARDA SOLA BİT KAYDIRMA ---\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'sağ taraf sıfırlarla doldurulur'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= (</span><span style="color: #0000BB">PHP_INT_SIZE </span><span style="color: #007700">* </span><span style="color: #0000BB">8</span><span style="color: #007700">) - </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= (</span><span style="color: #0000BB">PHP_INT_SIZE </span><span style="color: #007700">* </span><span style="color: #0000BB">8</span><span style="color: #007700">) - </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'işaret bitleri dışa kaydırılır'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= (</span><span style="color: #0000BB">PHP_INT_SIZE </span><span style="color: #007700">* </span><span style="color: #0000BB">8</span><span style="color: #007700">) - </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'bitler sola kaydırıldı'</span><span style="color: #007700">);<br /><br /><br />echo </span><span style="color: #DD0000">"\n--- NEGATİF TAMSAYILARDA SOLA BİT KAYDIRMA ---\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= -</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'sağ taraf sıfırlarla doldurulur'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= -</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= (</span><span style="color: #0000BB">PHP_INT_SIZE </span><span style="color: #007700">* </span><span style="color: #0000BB">8</span><span style="color: #007700">) - </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$dgr </span><span style="color: #007700">= -</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$hane </span><span style="color: #007700">= (</span><span style="color: #0000BB">PHP_INT_SIZE </span><span style="color: #007700">* </span><span style="color: #0000BB">8</span><span style="color: #007700">) - </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$snç </span><span style="color: #007700">= </span><span style="color: #0000BB">$dgr </span><span style="color: #007700">&lt;&lt; </span><span style="color: #0000BB">$hane</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #DD0000">'&lt;&lt;'</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #DD0000">'işaret biti dahil, bitler soldan dışa kaydırıldı'</span><span style="color: #007700">);<br /><br /><br /></span><span style="color: #FF8000">/*<br /> * Bundan sonrasını yoksayın; çıktıyı biçemlemekten başka bir şey yapmıyor.<br /> */<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">p</span><span style="color: #007700">(</span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #0000BB">$op</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">, </span><span style="color: #0000BB">$ilt </span><span style="color: #007700">= </span><span style="color: #DD0000">''</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$format </span><span style="color: #007700">= </span><span style="color: #DD0000">'%0' </span><span style="color: #007700">. (</span><span style="color: #0000BB">PHP_INT_SIZE </span><span style="color: #007700">* </span><span style="color: #0000BB">8</span><span style="color: #007700">) . </span><span style="color: #DD0000">"b\n"</span><span style="color: #007700">;<br /><br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"İfade: %d = %d %s %d\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$snç</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">, </span><span style="color: #0000BB">$op</span><span style="color: #007700">, </span><span style="color: #0000BB">$hane</span><span style="color: #007700">);<br /><br />    echo </span><span style="color: #DD0000">" Onluk:\n"</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"  değer=%d\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"  sonuç=%d\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$snç</span><span style="color: #007700">);<br /><br />    echo </span><span style="color: #DD0000">" İkilik:\n"</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">'  değer=' </span><span style="color: #007700">. </span><span style="color: #0000BB">$format</span><span style="color: #007700">, </span><span style="color: #0000BB">$dgr</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">'  sonuç=' </span><span style="color: #007700">. </span><span style="color: #0000BB">$format</span><span style="color: #007700">, </span><span style="color: #0000BB">$snç</span><span style="color: #007700">);<br /><br />    if (</span><span style="color: #0000BB">$ilt</span><span style="color: #007700">) {<br />        echo </span><span style="color: #DD0000">" DİKKAT: </span><span style="color: #0000BB">$ilt</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    }<br /><br />    echo </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin 32 bitlik makinelerdeki çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>

--- POZİTİF TAMSAYILARDA SAĞA BİT KAYDIRMA ---
İfade: 2 = 4 &gt;&gt; 1
 Onluk:
  değer=4
  sonuç=2
 İkilik:
  değer=000000000000000000000000000100
  sonuç=000000000000000000000000000010
 DİKKAT: işaret bitinin kopyası sola kaydırıldı

İfade: 1 = 4 &gt;&gt; 2
 Onluk:
  değer=4
  sonuç=1
 İkilik:
  değer=000000000000000000000000000100
  sonuç=000000000000000000000000000001

İfade: 0 = 4 &gt;&gt; 3
 Onluk:
  değer=4
  sonuç=0
 İkilik:
  değer=000000000000000000000000000100
  sonuç=000000000000000000000000000000
 DİKKAT: bitler sağa kaydırıldı

İfade: 0 = 4 &gt;&gt; 4
 Onluk:
  değer=4
  sonuç=0
 İkilik:
  değer=000000000000000000000000000100
  sonuç=000000000000000000000000000000
 DİKKAT: yukarıdakiyle aynı; 0&#039;dan sonrası kaydırılamaz


--- NEGATİF TAMSAYILARDA SAĞA BİT KAYDIRMA ---
İfade: -2 = -4 &gt;&gt; 1
 Onluk:
  değer=-4
  sonuç=-2
 İkilik:
  değer=111111111111111111111111111100
  sonuç=111111111111111111111111111110
 DİKKAT: işaret bitinin kopyası sola kaydırıldı

İfade: -1 = -4 &gt;&gt; 2
 Onluk:
  değer=-4
  sonuç=-1
 İkilik:
  değer=111111111111111111111111111100
  sonuç=111111111111111111111111111111
 DİKKAT: bitler sağa kaydırıldı

İfade: -1 = -4 &gt;&gt; 3
 Onluk:
  değer=-4
  sonuç=-1
 İkilik:
  değer=111111111111111111111111111100
  sonuç=111111111111111111111111111111
 DİKKAT: yukarıdakiyle aynı; -1&#039;dan sonrası kaydırılamaz


--- POZİTİF TAMSAYILARDA SOLA BİT KAYDIRMA ---
İfade: 8 = 4 &lt;&lt; 1
 Onluk:
  değer=4
  sonuç=8
 İkilik:
  değer=000000000000000000000000000100
  sonuç=000000000000000000000000001000
 DİKKAT: sağ taraf sıfırlarla doldurulur

İfade: 4611686018427387904 = 4 &lt;&lt; 60
 Onluk:
  değer=4
  sonuç=4611686018427387904
 İkilik:
  değer=000000000000000000000000000100
  sonuç=010000000000000000000000000000

İfade: -9223372036854775808 = 4 &lt;&lt; 61
 Onluk:
  değer=4
  sonuç=-9223372036854775808
 İkilik:
  değer=000000000000000000000000000100
  sonuç=100000000000000000000000000000
 DİKKAT: işaret bitleri dışa kaydırılır

İfade: 0 = 4 &lt;&lt; 62
 Onluk:
  değer=4
  sonuç=0
 İkilik:
  değer=000000000000000000000000000100
  sonuç=000000000000000000000000000000
 DİKKAT: bitler sola kaydırıldı


--- NEGATİF TAMSAYILARDA SOLA BİT KAYDIRMA ---
İfade: -8 = -4 &lt;&lt; 1
 Onluk:
  değer=-4
  sonuç=-8
 İkilik:
  değer=111111111111111111111111111100
  sonuç=111111111111111111111111111000
 DİKKAT: sağ taraf sıfırlarla doldurulur

İfade: -9223372036854775808 = -4 &lt;&lt; 61
 Onluk:
  değer=-4
  sonuç=-9223372036854775808
 İkilik:
  değer=111111111111111111111111111100
  sonuç=100000000000000000000000000000

İfade: 0 = -4 &lt;&lt; 62
 Onluk:
  değer=-4
  sonuç=0
 İkilik:
  değer=111111111111111111111111111100
  sonuç=000000000000000000000000000000
 DİKKAT: işaret biti dahil, bitler soldan dışa kaydırıldı
</pre></div>
   </div>
   <div class="example-contents"><p>
Yukarıdaki örneğin 64 bitlik makinelerdeki çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>

--- POZİTİF TAMSAYILARDA SAĞA BİT KAYDIRMA ---
İfade: 2 = 4 &gt;&gt; 1
 Onluk:
  değer=4
  sonuç=2
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0000000000000000000000000000000000000000000000000000000000000010
 DİKKAT: işaret bitinin kopyası sola kaydırıldı

İfade: 1 = 4 &gt;&gt; 2
 Onluk:
  değer=4
  sonuç=1
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0000000000000000000000000000000000000000000000000000000000000001

İfade: 0 = 4 &gt;&gt; 3
 Onluk:
  değer=4
  sonuç=0
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0000000000000000000000000000000000000000000000000000000000000000
 DİKKAT: bitler sağa kaydırıldı

İfade: 0 = 4 &gt;&gt; 4
 Onluk:
  değer=4
  sonuç=0
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0000000000000000000000000000000000000000000000000000000000000000
 DİKKAT: yukarıdakiyle aynı; 0&#039;dan sonrası kaydırılamaz


--- NEGATİF TAMSAYILARDA SAĞA BİT KAYDIRMA ---
İfade: -2 = -4 &gt;&gt; 1
 Onluk:
  değer=-4
  sonuç=-2
 İkilik:
  değer=1111111111111111111111111111111111111111111111111111111111111100
  sonuç=1111111111111111111111111111111111111111111111111111111111111110
 DİKKAT: işaret bitinin kopyası sola kaydırıldı

İfade: -1 = -4 &gt;&gt; 2
 Onluk:
  değer=-4
  sonuç=-1
 İkilik:
  değer=1111111111111111111111111111111111111111111111111111111111111100
  sonuç=1111111111111111111111111111111111111111111111111111111111111111
 DİKKAT: bitler sağa kaydırıldı

İfade: -1 = -4 &gt;&gt; 3
 Onluk:
  değer=-4
  sonuç=-1
 İkilik:
  değer=1111111111111111111111111111111111111111111111111111111111111100
  sonuç=1111111111111111111111111111111111111111111111111111111111111111
 DİKKAT: yukarıdakiyle aynı; -1&#039;dan sonrası kaydırılamaz


--- POZİTİF TAMSAYILARDA SOLA BİT KAYDIRMA ---
İfade: 8 = 4 &lt;&lt; 1
 Onluk:
  değer=4
  sonuç=8
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0000000000000000000000000000000000000000000000000000000000001000
 DİKKAT: sağ taraf sıfırlarla doldurulur

İfade: 4611686018427387904 = 4 &lt;&lt; 60
 Onluk:
  değer=4
  sonuç=4611686018427387904
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0100000000000000000000000000000000000000000000000000000000000000

İfade: -9223372036854775808 = 4 &lt;&lt; 61
 Onluk:
  değer=4
  sonuç=-9223372036854775808
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=1000000000000000000000000000000000000000000000000000000000000000
 DİKKAT: işaret bitleri dışa kaydırılır

İfade: 0 = 4 &lt;&lt; 62
 Onluk:
  değer=4
  sonuç=0
 İkilik:
  değer=0000000000000000000000000000000000000000000000000000000000000100
  sonuç=0000000000000000000000000000000000000000000000000000000000000000
 DİKKAT: bitler sola kaydırıldı


--- NEGATİF TAMSAYILARDA SOLA BİT KAYDIRMA ---
İfade: -8 = -4 &lt;&lt; 1
 Onluk:
  değer=-4
  sonuç=-8
 İkilik:
  değer=1111111111111111111111111111111111111111111111111111111111111100
  sonuç=1111111111111111111111111111111111111111111111111111111111111000
 DİKKAT: sağ taraf sıfırlarla doldurulur

İfade: -9223372036854775808 = -4 &lt;&lt; 61
 Onluk:
  değer=-4
  sonuç=-9223372036854775808
 İkilik:
  değer=1111111111111111111111111111111111111111111111111111111111111100
  sonuç=1000000000000000000000000000000000000000000000000000000000000000

İfade: 0 = -4 &lt;&lt; 62
 Onluk:
  değer=-4
  sonuç=0
 İkilik:
  değer=1111111111111111111111111111111111111111111111111111111111111100
  sonuç=0000000000000000000000000000000000000000000000000000000000000000
 DİKKAT: işaret biti dahil, bitler soldan dışa kaydırıldı
</pre></div>
   </div>
  </div>
</p>
 <div class="warning"><strong class="warning">Uyarı</strong>
  <p class="para">
   <strong><code><a href="reserved.constants.php#constant.php-int-max">PHP_INT_MAX</a></code></strong>&#039;ın ötesindeki sayılar üzerinde bitsel
   işlemler için <a href="book.gmp.php" class="link">gmp</a> eklentisindeki
   işlevler kullanılmalıdır.
  </p>
 </div>

 <div class="sect2">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">

    <li><span class="function"><a href="function.pack.php" class="function">pack()</a></span></li>
    <li><span class="function"><a href="function.unpack.php" class="function">unpack()</a></span></li>
    <li><span class="function"><a href="function.gmp-and.php" class="function">gmp_and()</a></span></li>
    <li><span class="function"><a href="function.gmp-or.php" class="function">gmp_or()</a></span></li>
    <li><span class="function"><a href="function.gmp-xor.php" class="function">gmp_xor()</a></span></li>
    <li><span class="function"><a href="function.gmp-testbit.php" class="function">gmp_testbit()</a></span></li>
    <li><span class="function"><a href="function.gmp-clrbit.php" class="function">gmp_clrbit()</a></span></li>
   </ul>
  </p>
 </div>
</div><?php manual_footer($setup); ?>