Bit operators and Assignment operators

Bit Operators:

C has various operators for logical bit-operations. For illustration,

x = x & 0177;

forms the bit-wise AND of x and 0177, efficiently retaining only the last seven bits of x.  The other operators are as follows:

       |           inclusive OR
       ^           (circumflex) exclusive OR
       ~           (tilde) 1's complement
       !             logical NOT
       <<          left shift (as in x<<2)
       >>          right shift     (arithmetic on PDP-11;  logical on H6070,  IBM360)


Assignment Operators:

An unusual characteristic of C is that, the normal binary operators such as `+', `-', and so on can be joined with the assignment operator `=' to make new assignment operators. For illustration:

x =- 10;

Employs the assignment operator `=-' to decrement x by 10, and

x =& 0177

Forms the AND of x and 0177. This convention is a helpful notational shortcut, specifically when x is a complex expression. The classic illustration is summing an array:

for( sum=i=0; i<n; i++ )
sum =+ array[i];

But the spaces about the operator are critical:

x = -10;

as well reduces x by 10. This is quite converse to the experience of nearly all programmers. In particular, watch out for things such as:

c=*s++;
y=&x[0];

both of which are nearly certainly not what you required. Newer versions of different compilers are courteous adequate to warn you regarding the ambiguity. Since all other operators in an expression are computed before the assignment operator, the order of evaluation must be watched carefully:

x = x<<y | z; 

Signifies `shift x left y places, then OR with z, and store in x'.

Floating Point:

C consists of single and double precision numbers for illustration, 

               double sum;
               float avg, y[10];
               sum = 0.0;
               for( i=0; i<n; i++ )
                       sum =+ y[i];avg = sum/n;

All floating arithmetic is completed in double precision. Mixed mode arithmetic is lawful; when an arithmetic operator in an expression has either operands int or char, the arithmetic done is integer, however if one operand is int or char and other is float or double, both operands are transformed to double. Therefore if i and j are int and x is float, 

       (x+i)/j         transforms i and j to float
       x + i/j         does i/j integer, then transforms

Type conversion might be made by the assignment; for example, 

               int m, n;
               float x, y;
               m = x;
               y = n;

transforms x to integer (that is, truncating toward zero), and n to floating point. Floating constants are just similar to those in FORTRAN or PL/I, except that the exponent letter is `e' rather than `E'. Therefore: 

               pi = 3.14159;
               large = 1.23456789e10;

printf will format the floating point numbers: "%w.df'' in the format string will print the corresponding variable in the field w digits wide, with d decimal places. An e rather than an f will generate exponential notation. 

goto and labels:

C has labels and a goto statement, therefore you can branch about the method you used to. However most of the time goto's are not required. (How much have we used up to this point?) The code can nearly always be more clearly expressed by if/else, for/while and compound statements.

One use of goto's with a few legitimacy is in a program that comprises a long loop, where a while would be too extended. Then you may write:

          mainloop:
               ...
               goto mainloop;

The other use is to implement a break out of more than one level of ‘for’ or ‘while’.  goto's can only branch to labels in similar function.

Latest technology based Programming Languages Online Tutoring Assistance

Tutors, at the www.tutorsglobe.com, take pledge to provide full satisfaction and assurance in Programming Languages help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Programming Languages, project ideas and tutorials. We provide email based Programming Languages help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Programming Languages. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Programming Languages Homework help and assignment help services. They use their experience, as they have solved thousands of the Programming Languages assignments, which may help you to solve your complex issues of Programming Languages. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.