Categories:

.NET (961)

C (387)

C++ (185)

CSS (84)

DBA (8)

General (30)

HTML (48)

Java (641)

JavaScript (220)

JSP (109)

JUnit (31)

MySQL (297)

Networking (10)

Oracle (562)

Perl (48)

Perl (9)

PHP (259)

PL/SQL (140)

RSS (51)

Software QA (27)

SQL Server (5)

Struts (20)

Unix (2)

Windows (3)

XHTML (199)

XML (59)

Other Resources:

There seem to be a few missing operators ..

Q

There seem to be a few missing operators, like ^^, &&=, and ->=.

✍: Guest

A

A:A logical exclusive-or operator (hypothetically ``^^'') would be nice, but it couldn't possibly have short-circuiting behavior analogous to && and || Similarly, it's not clear how short-circuiting would apply to hypothetical assignment operators &&= and ||=. (It's also not clear how often &&= and ||= would actually be needed.)

Though p = p->next is an extremely common idiom for traversing a linked list, -> is not a binary arithmetic operator. A hypothetical ->= operator therefore wouldn't really fit the pattern of the other assignment operators.

You can write an exclusive-or macro in several ways:

#define XOR(a, b) ((a) && !(b) || !(a) && (b)) /* 1 */

#define XOR(a, b) (!!(a) ^ !!(b)) /* 2 */

#define XOR(a, b) (!!(a) != !!(b)) /* 3 */

#define XOR(a, b) (!(a) ^ !(b)) /* 4 */

#define XOR(a, b) (!(a) != !(b)) /* 5 */

#define XOR(a, b) ((a) ? !(b) : !!(b)) /* 6 */

The first is straight from the definition, but is poor because it may evaluate its arguments multiple times The second and third ``normalize'' their operands to strict 0/1 by negating them twice--the second then applies bitwise exclusive or (to the single remaining bit); the third one implements exclusive-or as !=. The fourth and fifth are based on an elementary identity in Boolean algebra, namely that

_ _
a (+) b = a (+) b

(where (+) is exclusive-or and an overbar indicates negation). Finally, the sixth one, suggested by Lawrence Kirby and Dan Pop, uses the ?: operator to guarantee a sequence point between the two operands, as for && and ||. (There is still no ``short circuiting'' behavior, though, nor can there be.)

2015-01-28, 872👍, 0💬

Popular Posts:

Can we have static indexer in C# ? No.

How To Retrieve Input Values for Checkboxes Properly? - PHP Script Tips - Processing Web Forms If mu...

What is the output of printf("%d")? 1. When we write printf("%d",x); this means compiler will print ...

What Is the Difference between Formal Parameters and Actual Parameters? - Oracle DBA FAQ - Creating ...

What are the different elements in Functions points? The different elements in function points are a...