Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 175


Previous 1060 Stories (530 Pages, 2 Per Page) Next

The Java Lesson 7: Bitwise operations with good examples, click here!

Go to all tips in Java Lessons by Jon Huhtala
All Java Lessons contents page | Java Lesson 1 | Java Lesson 2 | Java Lesson 3 | Java Lesson 4 | Java Lesson 5 | Java Lesson 6 | Java Lesson 7 | Java Lesson 8 | Java Lesson 9 | Java Lesson 10 | Java Lesson 11 | Java Lesson 12 | Java Lesson 13 | Java Lesson 14 | Java Lesson 15 | Java Lesson 16 | Java Lesson 17 | Java Lesson 18 | Java Lesson 19 | Java Lesson 20 | Java Lesson 21 | Java Lesson 22 | Java Lesson 23 | Java Lesson 24 | Java Lesson 25 | Java Lesson 26 | Java Lesson 27 | Java Lesson 28 | Java Lesson 29 | Java Lesson 30 | Java Lesson 31 | Java Lesson 32 | Java Lesson 33 | Java Lesson 34 | Java Lesson 35 | Java Lesson 36 | Java Lesson 37 | Java Lesson 38 | Java Lesson 39 | Java Lesson 40 | Java Lesson 41 | Java Lesson 42 | Java Lesson 43 | Java Lesson 44 | Java Lesson 45 | Java Lesson 46

The Java Lesson 7

Bitwise operations: overview with detailed examples

Overview

Bitwise operations act upon individual bits within integer data. They are used to perform the logical operations AND, OR, and XOR (eXclusive OR), complementing (reversing all bits), and shifting (sliding bits to the left or right).

Logical bitwise operations

  • Use the standard boolean operators (&, |, and ^) to act upon two integer values. The short-circuit boolean operators (&& and ||) are not used for bitwise operations and will result in a compile error if attempted.

  • Produce an integer result (of size int or larger) that is the logical AND, OR, or XOR of two operands. The rules for these operations are as follows:

Operation Rule

&

If both corresponding operand bits are "on" the result bit is "on"

|

If either corresponding operand bit is "on" the result bit is "on"

^

If corresponding operand bits are different the result bit is "on"

For example, if

byte x = 5; // Binary value: 0000 0101 Hex value: 05
byte y = 9; // Binary value: 0000 1001 Hex value: 09
byte z;

this table shows the result of executing three unrelated statements. The cast is needed in order to store the int value that results from the operation.

Statement Binary Result Hexadecimal Decimal

z = (byte)(x & y);

0000 0001 01 01

z = (byte)(x | y);

0000 1101 0D 13

z = (byte)(x ^ y);

0000 1100 0C 12

Example: The following program can be run to test logical bitwise operations.

public class App {
public static void main(String[] args) {

// Variables to be read from the user

int first;
int second;

// Prompt for and read the two integers

System.out.print("First integer: ");
first = Keyboard.readInt();
System.out.print("Second integer: ");
second = Keyboard.readInt();

// Display the results of logical bitwise operations

System.out.println(" " + first + " & " + second + " = " +
(first & second));
System.out.println(" " + first + " | " + second + " = " +
(first | second));
System.out.println(" " + first + " ^ " + second + " = " +
(first ^ second));
}
}

Notes:

  1. Program results are displayed in decimal. To really understand what is happening, work out the equivalent binary and hexadecimal values.

  2. Be sure to run the program several times with different integer values.


1437 bytes more | 23 comments | Printer Friendly Page  Send to a Friend | Score: 4
Posted by jalex on Wednesday, February 25, 2004 (00:00:00) (18467 reads)

Could you tell me about chain exceptions?

Go to all tips in General Java

Question: Could you tell me about chain exceptions?

Answer: It is common for Java code to catch one exception and throw another:
try {
...
} catch(YourException e) {
throw new MyException();
}

Unfortunately, the information contained in the "causative exception" (YourException in the example above) is generally lost, which greatly complicates debugging.

The version 1.4 libraries add a unified, general-purpose mechanism to record such information. The preexisting ad-hoc facilities have been retrofitted to use the new technique. Two new constructors were added to Throwable. Each takes another Throwable as the cause.

Throwable(Throwable cause)
Throwable(String message, Throwable cause)

Common exceptions classes have had analogous new constructors added. The intended usage is:
try {
lowLevelOp();
} catch (LowLevelException le) {
throw new HighLevelException(le);
}

Legacy exception classes can use a modified form of new idiom through the Throwable initCause(Throwable cause) method, such as:

try {
lowLevelOp();
} catch (LowLevelException le) {
throw new (HighLevelException)
HighLevelException().initCause(le);
}

The cause information can be retrieved through the method Throwable getCause().
For more information, see: http://java.sun.com/j2se/1.4/docs/guide/lang/chainedexceptions.html

*******************************************
Our older tips: March 22, 2001 - October 21, 2002 READ HERE
All published and not published on the site tips read HERE



5 comments | Printer Friendly Page  Send to a Friend | Score: 5
Posted by jalex on Wednesday, February 25, 2004 (00:00:00) (3307 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176|
175
| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy