Προς το περιεχόμενο

Συμπλήρωμα στη C


emperor318

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά και πάλι! :-)

 

Σχετικά με τον τελεστή ΣΥΜΠΛΗΡΩΜΑ (~) θέλω να ρωτήσω. Έχω αυτό:

>
#include <iostream.h>
#include <string.h>

char word[20];

void conv2bin(int num)
{
int quot,blnc;
quot=num;
for (int i=19;i>=0;i--)
{
	blnc=quot%2;
	quot=quot/2;
	if (blnc==0) word[i]='0';
	else word[i]='1';
}
}

int main()
{
int num;
num=11;
conv2bin(num);
cout<<word<<endl;
num=~11;
conv2bin(num);
cout<<word<<endl;
return 0;
} 

αλλά ενώ το KAI (&), το Ή (|), και το ΑΠΟΚΛΕΙΣΤΙΚΟ Ή (^) τα βγάζει σωστά, το συμπλήρωμα βγαίνει… άλλ’ αντ’ άλλων :confused:

 

Κάποιος να βοηθήσει;

Δημοσ.
Και πάλι, βάζω 00000000000000001011 (11) και δίνει 00000000000000001100...

 

>
#include <iostream.h>
#include <string.h>

char word[20];

void conv2bin(unsigned num)
{
unsigned quot,blnc;
quot=num;
for (int i=19;i>=0;i--)
{
	blnc=quot%2;
	quot=quot/2;
	if (blnc==0) word[i]='0';
	else word[i]='1';
}
}

int main()
{
unsigned num;
num=11;
conv2bin(num);
cout<<word<<endl;
num=~11;
conv2bin(num);
cout<<word<<endl;
return 0;
}

συγκεντρώσου....:mrgreen:

 

αποτέλεσμα:

>
00000000000000001011
11111111111111110100

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...