[eside-ghost] Bitwise operations en C
Saúl Ibarra
saghul en gmail.com
Mie Mar 19 10:14:38 CET 2008
Hoola!
Tengo esta dudilla de C que me asalta desde hace tiempo, y tengo ganas
de resolver :)
Para qué se usan realmente las operaciones de bit en C? Porque leyengo
mucho código leo cosas como
#define MAX_KOSA (4096 >> 2)
lo que vendría siendo lo mismo que
#define MAX_KOSA 1024
no?
y ya por rizar un poco el rizo os pego un trozo de código de la
aplicación Dial de Asterisk, que me desconcierta un poco más...
####
00222 enum {
00223 OPT_ANNOUNCE = (1 << 0),
00224 OPT_RESETCDR = (1 << 1),
00225 OPT_DTMF_EXIT = (1 << 2),
00226 OPT_SENDDTMF = (1 << 3),
00227 OPT_FORCECLID = (1 << 4),
00228 OPT_GO_ON = (1 << 5),
00229 OPT_CALLEE_HANGUP = (1 << 6),
00230 OPT_CALLER_HANGUP = (1 << 7),
00231 OPT_PRIORITY_JUMP = (1 << 8),
00232 OPT_DURATION_LIMIT = (1 << 9),
00233 OPT_MUSICBACK = (1 << 10),
00234 OPT_CALLEE_MACRO = (1 << 11),
00235 OPT_SCREEN_NOINTRO = (1 << 12),
00236 OPT_SCREEN_NOCLID = (1 << 13),
00237 OPT_ORIGINAL_CLID = (1 << 14),
00238 OPT_SCREENING = (1 << 15),
00239 OPT_PRIVACY = (1 << 16),
00240 OPT_RINGBACK = (1 << 17),
00241 OPT_DURATION_STOP = (1 << 18),
00242 OPT_CALLEE_TRANSFER = (1 << 19),
00243 OPT_CALLER_TRANSFER = (1 << 20),
00244 OPT_CALLEE_MONITOR = (1 << 21),
00245 OPT_CALLER_MONITOR = (1 << 22),
00246 OPT_GOTO = (1 << 23),
00247 OPT_OPERMODE = (1 << 24),
00248 OPT_CALLEE_PARK = (1 << 25),
00249 OPT_CALLER_PARK = (1 << 26),
00250 OPT_IGNORE_FORWARDING = (1 << 27),
00251 } dial_exec_option_flags;
00252
00253 #define DIAL_STILLGOING (1 << 30)
00254 #define DIAL_NOFORWARDHTML (1 << 31)
#####
Si alguien pudiera explicarme porqué se hacen así las cosas se lo
agradecería mucho :)
Thnx!
--
Saúl -- "Nunca subestimes el ancho de banda de un camión lleno de disketes."
----------------------------------------------------------------
http://www.saghul.net/
Más información sobre la lista de distribución eside-ghost