IN C .Scrieti o functie care sa seteze pe 1 bitul 3 al unui numar natural n primit ca parametru.
Răspunsuri la întrebare
Răspuns de
2
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;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă