Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 29 Ιουν 2011, 15:32

Παιδιά, μπορεί κάποιος να μου εξηγήσει τα bitwise operators; Δεν έχω καταλάβει τίποτα....
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 29 Ιουν 2011, 15:53

Είναι αρκετά προχωρημένα αυτά, γιατί δουλεύεις απευθείας πάνω στα bits ενός byte της μνήμης. Έχουν να κάνουν με truth tables, λογικές πύλες, κλπ (με τα οποία είναι εξοικειωμένοι οι μηχανικοί).

Σε ποιο υψηλό επίπεδο (πιο high level εννοώ, δηλαδή πιο εύκολο) χρησιμοποιούνται συνήθως συνδυασμένα με unions για το σετάρισμα κι έλεγχο των λεγόμενων bit-flags, που ουσιαστικά χρησιμοποιούν τα bits ενός ή περισσοτέρων bytes ως boolean flags (αν το bit είναι σεταρισμένο έχει τιμή 1 κι εκλαμβάνεται ως TRUE, αλλιώς έχει τιμή 0 και εκλαμβάνεται ως FALSE).

Για να ελέγξεις αν ένα ή περισσότερα bits είναι ταυτόχρονα σεταρισμένα ή όχι, χρησιμοποιείς bitwise operations: | (OR), & (AND), ~ (NOT), ^ (XOR) ενώ μπορείς να κάνεις και μετακινήσεις bits με τους bitshift operators: << (shift left) και >> (shift right).

Σε γενικές γραμμές δεν νομίζω πως χρειάζεται να ανησυχείς από τόσο νωρίς για αυτά. Ενδεχομένως να μη τα χρειαστείς και ποτέ (αν και τα bitflags είναι αρκετά συνηθισμένα, ιδιαίτερα στην υλοποίηση γραφικών περιβαλλόντων .. GUI).

ΥΓ. Αν ωστόσο επιμένεις, ρίξε μια γρήγορη ματιά π.χ. εδώ: http://www.edcc.edu/faculty/paul.bladek ... ations.htm
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 29 Ιουν 2011, 22:26

migf1 έγραψε:Είναι αρκετά προχωρημένα αυτά, γιατί δουλεύεις απευθείας πάνω στα bits ενός byte της μνήμης. Έχουν να κάνουν με truth tables, λογικές πύλες, κλπ (με τα οποία είναι εξοικειωμένοι οι μηχανικοί).

Σε ποιο υψηλό επίπεδο (πιο high level εννοώ, δηλαδή πιο εύκολο) χρησιμοποιούνται συνήθως συνδυασμένα με unions για το σετάρισμα κι έλεγχο των λεγόμενων bit-flags, που ουσιαστικά χρησιμοποιούν τα bits ενός ή περισσοτέρων bytes ως boolean flags (αν το bit είναι σεταρισμένο έχει τιμή 1 κι εκλαμβάνεται ως TRUE, αλλιώς έχει τιμή 0 και εκλαμβάνεται ως FALSE).

Για να ελέγξεις αν ένα ή περισσότερα bits είναι ταυτόχρονα σεταρισμένα ή όχι, χρησιμοποιείς bitwise operations: | (OR), & (AND), ~ (NOT), ^ (XOR) ενώ μπορείς να κάνεις και μετακινήσεις bits με τους bitshift operators: << (shift left) και >> (shift right).

Σε γενικές γραμμές δεν νομίζω πως χρειάζεται να ανησυχείς από τόσο νωρίς για αυτά. Ενδεχομένως να μη τα χρειαστείς και ποτέ (αν και τα bitflags είναι αρκετά συνηθισμένα, ιδιαίτερα στην υλοποίηση γραφικών περιβαλλόντων .. GUI).

ΥΓ. Αν ωστόσο επιμένεις, ρίξε μια γρήγορη ματιά π.χ. εδώ: http://www.edcc.edu/faculty/paul.bladek ... ations.htm

Κάτι πρέπει να έπαθε το link! πριν λίγο μπήκα να το τσεκάρω, όλα μια χαρά, αλλά τώρα δεν μου το ανοίγει!
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 30 Ιουν 2011, 16:37

Παιδιά, μπορεί κάποιος να μου εξηγήσει τον τελεστή ?;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 30 Ιουν 2011, 17:13

stamatiou έγραψε:Παιδιά, μπορεί κάποιος να μου εξηγήσει τον τελεστή ?;

Είναι εναλλακτικός του if-else statement. Για παράδειγμα, αντί για...

Κώδικας: Επιλογή όλων

int max, x=10, y=20;

if ( x < y )
max = y;
else
max = x;

μπορείς να γράψεις...

Κώδικας: Επιλογή όλων

int max, x=10, y=20;

max = x < y ? y : x;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 30 Ιουν 2011, 17:22

Οκ κατάλαβα, ευχαριστώ πολύ!
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 30 Ιουν 2011, 17:27

Παρακαλώ :)

Απλά είναι για απλές περιπτώσεις if-else, και χρησιμοποιείται κυρίως όταν θες να εκχωρήσεις μια από 2 πιθανές τιμές σε μια μεταβλητή, ανάλογα με το αν μια συνθήκη είναι TRUE ή FALSE.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό clepto » 30 Ιουν 2011, 19:54

έχετε να μου προτείνεται κάποιος εύχρηστο και εύκολο αλλά πλήρως πρόγραμμα για gui;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 30 Ιουν 2011, 20:08

Δεν κατάλαβα τι ρώτησες.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 30 Ιουν 2011, 20:15

migf1 έγραψε:Δεν κατάλαβα τι ρώτησες.

Μάλλον κάποιο IDE που να παρέχει και εργαλεία για προγραμματισμού γραφικών εφαρμογών(αυτό δεν είναι το gui? δεν είμαι σίγουρος...).
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron