Se citesc 2 numere întregi de la tastatură. Primul număr este cuprins doar în intervalul 0-7 și al doilea număr este cuprins doar în intervalul 0-31. Să se eficientizeze modul de stocare a celor două numere astfel: cu ajutorul operațiilor pe biți să se rețină ambele numere în memoria calculatorului în spațiul alocat unei singure variabile de tipul char. Să se afișeze mai apoi caracterul rezultat în urma concatenării celor două numere, precum și cele 2 numere, folosindu-vă doar de variabila de tip char. In c va rog, nu c++.
Răspunsuri la întrebare
Răspuns de
1
#include<stdio.h>
int main()
{
int x = 5;
int y = 25;
unsigned char a = x; // = 00000101
unsigned char b = y; // = 00010100
unsigned char c = a << 5; // = 10100000
c+=b; // = 10110100
// si ca sa le scoti:
printf("%d\n",c >> 5);
printf("%d\n", c & 31); // 31 este 00011111 si cand faci & cu c iti face primii 3 biti 0
// daca te intreaba de ce unsigned char si nu char ii zici ca tot 8 biti ocupa e dar e mai usor sa lucrezi cu el
}
beeskywalker:
MUltumesc, mult!
Alte întrebări interesante
Limba română,
8 ani în urmă
Biologie,
8 ani în urmă
Informatică,
8 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă
Engleza,
9 ani în urmă