Răspuns :
int bit (int n) {
return (n | (1 << 3));
}
Bitul 3 se afla pe pozitia 4 de la sfarsit spre inceput. Numararea bitilor incepe de la 0.
1 << 3 inseamna 1 in baza 2 ( care se poate scrie ...00000001), mutat spre stanga (fiecare pozitie mutata spre stanga reprezinta o inmultire cu 2) pana ajunge pe pozitia bitului pe care doresti sa il transformi. Obtinem ...00001000.
Functia o sa faca operatia | pentru n si ...00001000. Indiferent daca bitul afflat pe pozitia respectiva are valoarea 0 sau 1, rezultatul | o sa fie 1
Ex :
1 | 1 = 1
0 | 1 = 1
1 | 0 = 1
Observam ca doar bitul aflat pe pozitia 3 o sa fie schimbat. Sper ca am explicat destul de clar. Iti pun mai jos tot programul ca sa poti sa testezi.
#include <stdio.h>
int bit (int n) {
return (n | (1 << 3));
}
int main(void) {
int n;
scanf("%d", &n);
printf("%d", bit(n));
return 0;
}
return (n | (1 << 3));
}
Bitul 3 se afla pe pozitia 4 de la sfarsit spre inceput. Numararea bitilor incepe de la 0.
1 << 3 inseamna 1 in baza 2 ( care se poate scrie ...00000001), mutat spre stanga (fiecare pozitie mutata spre stanga reprezinta o inmultire cu 2) pana ajunge pe pozitia bitului pe care doresti sa il transformi. Obtinem ...00001000.
Functia o sa faca operatia | pentru n si ...00001000. Indiferent daca bitul afflat pe pozitia respectiva are valoarea 0 sau 1, rezultatul | o sa fie 1
Ex :
1 | 1 = 1
0 | 1 = 1
1 | 0 = 1
Observam ca doar bitul aflat pe pozitia 3 o sa fie schimbat. Sper ca am explicat destul de clar. Iti pun mai jos tot programul ca sa poti sa testezi.
#include <stdio.h>
int bit (int n) {
return (n | (1 << 3));
}
int main(void) {
int n;
scanf("%d", &n);
printf("%d", bit(n));
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!