emperor318 Δημοσ. 12 Δεκεμβρίου 2009 Δημοσ. 12 Δεκεμβρίου 2009 Γειά και πάλι! Σχετικά με τον τελεστή ΣΥΜΠΛΗΡΩΜΑ (~) θέλω να ρωτήσω. Έχω αυτό: > #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 (&), το Ή (|), και το ΑΠΟΚΛΕΙΣΤΙΚΟ Ή (^) τα βγάζει σωστά, το συμπλήρωμα βγαίνει… άλλ’ αντ’ άλλων Κάποιος να βοηθήσει;
bxenos Δημοσ. 12 Δεκεμβρίου 2009 Δημοσ. 12 Δεκεμβρίου 2009 βάλε unsigned αντί για int. Του αλλάζεις τα φωτα με το πρόσημο.
emperor318 Δημοσ. 12 Δεκεμβρίου 2009 Μέλος Δημοσ. 12 Δεκεμβρίου 2009 βάλε unsigned αντί για int. Του αλλάζεις τα φωτα με το πρόσημο. Και πάλι, βάζω 00000000000000001011 (11) και δίνει 00000000000000001100...
bxenos Δημοσ. 12 Δεκεμβρίου 2009 Δημοσ. 12 Δεκεμβρίου 2009 Και πάλι, βάζω 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; } συγκεντρώσου.... αποτέλεσμα: > 00000000000000001011 11111111111111110100
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.