Dersler

View on GitHub

EEM-120 Algoritma ve Programlama II Dersi

Bit Düzey (Bitwise) Operatörler

#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char a=37;
    printf("a degiskeni: %d\n",a);
    printf("a degiskeni 1 bit sola kaydirilirsa: %d\n", a<<1);
    printf("a degiskeni 2 bit sola kaydirilirsa: %d\n", a<<2);
    
    printf("\na degiskeni: %X\n",a);
    printf("a degiskeni 1 bit sola kaydirilirsa hex: %X\n", a<<1);
    printf("a degiskeni 2 bit sola kaydirilirsa hex: %X\n", a<<2);
    
    
     
    return 0;
}
a degiskeni: 37
a degiskeni 1 bit sola kaydirilirsa: 74
a degiskeni 2 bit sola kaydirilirsa: 148

a degiskeni: 25
a degiskeni 1 bit sola kaydirilirsa hex: 4A
a degiskeni 2 bit sola kaydirilirsa hex: 94
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char a=37;
    printf("a degiskeni: %d\n",a);
    printf("a degiskeni 1 bit saga kaydirilirsa: %d\n", a>>1);
    printf("a degiskeni 2 bit saga kaydirilirsa: %d\n", a>>2);
    
    printf("\na degiskeni: %X\n",a);
    printf("a degiskeni 1 bit saga kaydirilirsa hex: %X\n", a>>1);
    printf("a degiskeni 2 bit saga kaydirilirsa hex: %X\n", a>>2);
    
    
     
    return 0;
}
a degiskeni: 37
a degiskeni 1 bit saga kaydirilirsa: 18
a degiskeni 2 bit saga kaydirilirsa: 9

a degiskeni: 25
a degiskeni 1 bit saga kaydirilirsa hex: 12
a degiskeni 2 bit saga kaydirilirsa hex: 9
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char i, j, k, m, n, o;
    i=21;    // 0001 0101
    j=56;    // 0011 1000
    
    o = ~i; // 1110 1010
    
    k = i&j; // 0001 0000
    m = i|j; // 0011 1101
    n = i^j; // 0010 1101  
    
    printf("k 10 tabaninda: %d, 16 tabaninda: %X\n",k,k);
    printf("m 10 tabaninda: %d, 16 tabaninda: %X\n",m,m);
    printf("n 10 tabaninda: %d, 16 tabaninda: %X\n",n,n);
    printf("o 10 tabaninda: %d, 16 tabaninda: %X\n",o,o);
    
    return 0;
}
k 10 tabaninda: 16, 16 tabaninda: 10
m 10 tabaninda: 61, 16 tabaninda: 3D
n 10 tabaninda: 45, 16 tabaninda: 2D
o 10 tabaninda: 234, 16 tabaninda: EA
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char i=0;
    // i degiskeninin 4. bitini 1 yapalim
    // 0001 0000 = 16
    //i=16;
    i=1<<4; // 
    printf("i'nin 4. bitinin 1 yapilmasi: %d\n", i);
    
    i=1<<6;
    printf("i'nin 6. bitinin 1 yapilmasi: %d", i);
    return 0;
}
i'nin 4. bitinin 1 yapilmasi: 16
i'nin 6. bitinin 1 yapilmasi: 64
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char i=12;
    // i= 0000 1100 = 12
    // i degiskeninin 4. bitini 1 yapalim
    
    i = i|(1<<4); 
    printf("i'nin 4. bitinin 1 yapilmasi dec: %d\n", i);
    printf("i'nin 4. bitinin 1 yapilmasi hex: %X\n", i);
    
    return 0;
}
i'nin 4. bitinin 1 yapilmasi dec: 28
i'nin 4. bitinin 1 yapilmasi hex: 1C
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned int i=3025673753;
    // i= B458 1E19
    // i degiskeninin 16. bitini 1 yapalim
    
    i = i|(1<<16); 
    printf("i'nin 4. bitinin 1 yapilmasi dec: %u\n", i);
    printf("i'nin 4. bitinin 1 yapilmasi hex: %X\n", i);
    
    return 0;
}
i'nin 4. bitinin 1 yapilmasi dec: 3025739289
i'nin 4. bitinin 1 yapilmasi hex: B4591E19
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char i=12;
    // i= 0000 1100 = 12
    // i degiskeninin 3. bitini 0 yapalim
    
    i = i & ~(1<<3); 
    printf("i'nin 3. bitinin 0 yapilmasi dec: %d\n", i);
    printf("i'nin 3. bitinin 0 yapilmasi hex: %X\n", i);
    
    return 0;
}
i'nin 3. bitinin 0 yapilmasi dec: 4
i'nin 3. bitinin 0 yapilmasi hex: 4
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned int i=3025673753;
    // i= B458 1E19
    // i degiskeninin 19. bitini 0 yapalim
    
    printf("i'nin baslangic degeri        hex: %X\n", i);
    i = i & ~(1<<19);
    printf("i'nin 19. bitinin 0 yapilmasi dec: %u\n", i);
    printf("i'nin 19. bitinin 0 yapilmasi hex: %X\n", i);
    
    return 0;
}
i'nin baslangic degeri        hex: B4581E19
i'nin 19. bitinin 0 yapilmasi dec: 3025149465
i'nin 19. bitinin 0 yapilmasi hex: B4501E19
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char i=12;
    // i= 0000 1100 = 12
    // i degiskeninin 3. bitini test edelim.
    
    if(i & 1<<3)
        printf("i degiskeninin 3. biti 1'dir.\n");
    else
        printf("i degiskeninin 3. biti 0'dir.\n");
    
    if(i & 1<<4)
        printf("i degiskeninin 4. biti 1'dir.\n");
    else
        printf("i degiskeninin 4. biti 0'dir.\n");
    return 0;
}
i degiskeninin 3. biti 1'dir.
i degiskeninin 4. biti 0'dir.
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned char i=12, n;
    
    // i= 0000 1100 = 12
    // i degiskeninin 3. bitini test edelim.
    n=2;
    
    if(i & 1<<n)
        printf("i degiskeninin %d. biti 1'dir.\n",n);
    else
        printf("i degiskeninin %d. biti 0'dir.\n",n);
    
    return 0;
}
i degiskeninin 2. biti 1'dir.
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned int i=3025673753, n;
    // i= 1011 0100 0101 1000 0001 1110 0001 1001 = 3025673753
    // i degiskeninin 3. bitini test edelim.
    n=4;
    if(i & 1<<n)
        printf("i degiskeninin %d. biti 1'dir.\n",n);
    else
        printf("i degiskeninin %d. biti 0'dir.\n",n);
    
    n=5;
    if(i & 1<<n)
        printf("i degiskeninin %d. biti 1'dir.\n",n);
    else
        printf("i degiskeninin %d. biti 0'dir.\n",n);
    
    return 0;
}
i degiskeninin 4. biti 1'dir.
i degiskeninin 5. biti 0'dir.
#include <stdio.h>

int main(int argc, char *argv[]) {
    
    unsigned int i=3025673753;
    int n;
    // i= 1011 0100 0101 1000 0001 1110 0001 1001 = 3025673753
    // i degiskeninin 3. bitini test edelim.
    for(n=31;n>=0;n--)
        if(i & 1<<n)
            printf("1");
        else
            printf("0");
    
    
    return 0;
}
10110100010110000001111000011001