how to write an inverse() function in C programming only for lower 4 bits

Discussion in 'Programmer's Corner' started by dezmond, Nov 9, 2008.

Thread Status:
Not open for further replies.
  1. dezmond

    Thread Starter New Member

    Sep 27, 2008
    3
    0
    Anyone has any idea how to write the coding for an inverse() function in c programming which will only invert or toggle the 4 lower significant bits (a0~a3) and leave the 4 most significant bits (a4~a7) unchanged?

    e.g.

    porta = 0bx01010000;

    and after the inverse function,

    porta = inverse(porta);

    so porta now is 0b01011111.

    any one have any ideas? I've got a headache busting my brains out on this problem...
     
  2. hgmjr

    Moderator

    Jan 28, 2005
    9,030
    214
    Look into the Exclusive-Or operator "^". Just exclusive-or the binary value 0x00001111 with the byte in which you want to toggle the bits of the lower nibble.

    hgmjr
     
  3. hgmjr

    Moderator

    Jan 28, 2005
    9,030
    214
Loading...
Thread Status:
Not open for further replies.