Toufas Δημοσ. 5 Μαΐου 2004 Δημοσ. 5 Μαΐου 2004 lipon o unpaiktable me voithise sta && || kai ! ok ta katalava tora omos piga sta &, |, ^, ~, >> kai << exo to eksis paradigma (copy apo to vivlio olo) >#include <stdio.h> main() { int x, y, z; x = 4321; y = 5678; printf("given x = %u, i.e, 0X%04X\n", x, x); printf(" y = %u, i.e., 0X%04X\n", y, y); z = x & y; printf("x & y returns %6u i.e. 0X%04X\n", z, z); z = x | y; printf("x | y returns %6u i.e. 0X%04X\n", z, z); z = x ^ y; printf("x ^ y returns %6u i.e. 0X%04X\n", z, z); printf("~x returns %6u i.e. 0X%04X\n", ~x, ~x); return 0; } to apotelesma tou eprepe na einai : > given x = 4321, i.e, 0X10E1 y = 5678, i.e., 0X162E x & y returns 4128 i.e. 0X1020 x | y returns 5871 i.e. 0X16EF x ^ y returns 1743 i.e. 0X06CF ~x returns 61214 i.e. 0XEF1E ego omos perno: > given x = 4321, i.e, 0X10E1 y = 5678, i.e., 0X162E x & y returns 4128 i.e. 0X1020 x | y returns 5871 i.e. 0X16EF x ^ y returns 1743 i.e. 0X06CF ~x returns 4294962974 i.e. 0XFFFFEF1E plz kapios na mou eksigisei ti einai aftoi oi operators kai giati mou vgazei tetio apotelesma thanks in advance
Directx Δημοσ. 5 Μαΐου 2004 Δημοσ. 5 Μαΐου 2004 Αν κάνεις compile το συγκεκριμένο παράδειγμα σε έναν 16μπιτό compiler, όπως για παράδειγμα τον Turbo C++ 3.0 για DOS, δεν θα υπάρξει πρόβλημα. Αυτό, μάλλον, συμβαίνει από την διαφορά που υπάρχει μεταξύ της εσωτερικής αναπαράστασης των τύπων bit ( ~ = inverts each bit ) σε 16μπιτούς και 32μπιτούς compilers (γενικά αποφεύγουμε να παίζουμε στην C σε επίπεδο bits με γενικούς τύπους καθώς η εσωτερική αναπαράσταση των bits κατά το C standard είναι «provider defined» δηλαδή αλλάζει από compiler σε compiler). Για παράδειγμα, το sizeof(int) σε έναν 16μπιτό compiler απαιτεί 2( *8 = 16 ) bytes από την μνήμη ενώ, εξʼ ορισμού, σε έναν 32μπιτό 4 (*8 = 32) bytes μνήμης, πράγμα που σε χαμηλό επίπεδο επιφέρει ορισμένες αλλαγές.. Υ.Γ. Το 0XFFFFEF1E … δείχνει ότι ο τύπος έχει γίνει overflowed (-n).
Toufas Δημοσ. 5 Μαΐου 2004 Μέλος Δημοσ. 5 Μαΐου 2004 tora na mou eksigisei kai kapios aftous tous operators plz
Typhoon Δημοσ. 5 Μαΐου 2004 Δημοσ. 5 Μαΐου 2004 << - shift left >> - shift right Ολισθήσεις αριστερά & δεξία κατά ένα bit. ΠΧ: Έστω AL: 00010001, θα γίνει: 00100010 για ολίσθηση αριστερά & 00001000 για ολίσθηση δεξία. & - Bitwise And | - Bitwise Or ^ - Bitwise XOR Εκτελούν της αντίστοιχες λογικές πράξεις bit προς bit μεταξύ 2 μεταβλητών: Έστω X=7 (0111 binary) & Y=13 (1101 binary) έχουμε: X&Y = 0101 X|Y = 1111 X^Y = 1010 ~ - Bitwise Compliment Συμπλήρωμα bit προς bit. πχ για AL: 01000111 ~AL = 10111000
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.