şükela:  tümü | bugün
  • tam sayılar için kolay bir twos complement bulma yöntemi olarak önce sayının ones complement ini bulup, bulduğumuz sayıya 1 ekleriz.
  • günümüz mimarileri bunu kullanır.
  • bu mimaride kafa karıstıran tek yer ters almadır, yok sıfırdan cıkar yok bir ekle falan kafam karısıyor yahu diyorsanız kuralı biraz farklı yorumlayabiliriz:

    tek kuralımız su: sayıyı sağdan itibaren ilk biri gorene kadar aynen yaz o biri de aynen yaz sonrasını ters cevir.

    mesela 3: 0011

    ters cevirmek istedigimizde ilk bit 1 bunu yazıyoruz sonrasını ters ceviriyoruz:

    -3 : 1101

    bir de en sağ biti sıfır olan bir sayıda ornegimizi verip entrymizi bitirelim:

    -18: 11101110

    ilk bit sıfır ondan sonraki 1, o 1'i de yazıp degistiyoruz:

    18: 00010010
  • örneğin 0101 (5) sayısını negatife çevirmek için

    ilk olarak sayının complementi alınır. yani 1 leri 0, 0 ları 1 olarak değiştiriyoruz.

    1010

    daha sonra sayıya 1 ekleriz.

    1010
    1
    +------
    1011 (-5)

    başındaki 1, sign bit olarak geçer. eğer binary ifadede sign bit 1 ise negatif, 0 ise pozitiftir.
  • ters alma sırasında karıştıracak pek bi şey yok aslında.
    söylendiği gibi önce 1's complement alınır. bu da her sayının tersini almaktır. mesela sayımız:
    00100100 olsun. bunun 1's complementi;
    11011011 dir.

    2's complement bulmak için de 1's comp. a 1 eklersiniz;
    11011011 + 1

    11011100 olur o da. bu da ilk sayımızın 2's complement i olmuş olur.
  • https://en.wikipedia.org/wiki/two's_complement

    adresinden kendisi hakkinda ek bilgiye ulasabilirsiniz.