*
The moose likes Java in General and the fly likes Binary in java - guide me Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Binary in java - guide me" Watch "Binary in java - guide me" New topic
Author

Binary in java - guide me

Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
i need to do logical AND mulitiplication for two binary numbers ....

100 & 111 = 100

when i do that it is working for this 3 bit .... but when i go further , it is not working ...

1111111 & 100000 = 100000 ( but the output is 33792)

here is the simple program ... find where i have done the mistake ...

class Test1
{
public static void main(String [] args)
{
int a, b=1111111,c=100000,d;
a = b & c;
d = b | c;
System.out.println("& = "+a+" | = "+d);
}
}


Manisekar
Peter van de Riet
Ranch Hand

Joined: Apr 09, 2004
Posts: 112

It makes perfectly sence:

decimal 1111111 is binary 100001111010001000111
decimal 100000 is binary 11000011010100000



binary 1000010000000000 = decimal 33792

Maybe you want to fill your "int a" and "int b" a different way:


The output is: & = 100000 | = 1111111


Each number system has exactly 10 different digits.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14074
    
  16

Originally posted by Manisekar Chinnasami:
int a, b=1111111,c=100000,d;

You are not assigning binary numbers to the variables b and c here, but decimal numbers. Java doesn't have a way to express integer literals as binary numbers. You could try this instead:


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19656
    
  18

Use Integer.toBinaryString() to get a binary representation back.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
actually i m getting the values as integer ...

b = Integer.parseInt("1011111", 2)

here the value "1011111" is in String format ... but i m getting those values in the interger format ...

int c = 1011111;
int b = Integer.parseInt(c,2);

how can i convert int c to String ???
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18546
    
  40


100 & 111 = 100


This part is probably done in decimal too -- and worked by dumb luck.

ie....



Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18546
    
  40


int c = 1011111;
int b = Integer.parseInt(c,2);

how can i convert int c to String ???


To repeat what everyone is saying... The value of c is assigned the decimal value of 1011111. Not the binary value of 1011111. Even if you convert it to string, using Integer.toString(), you are converting the wrong value.

Henry
Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
THEN HOW COULD I DO IT WITH THE BINARY NUMBERS ???

THE ACTUAL PROBLEMS IS,

CONSIDER A BINARY NUMBER 110110101, HAVE TO CHECK BITWISE DIGIT TO ZERO OR ONE, IF IT IS ONE, THE NUMBER LEFT UNCHANGED,ELSE IF IT IS 0, THEN IT SHOULD BE CHANGED TO ONE.

IF I USE SHIFT OPERATORS WILL IT WORK ???

IS THERE ANY WAY TO INITIALISE THE NUMBERS AS BINARY ??(i think it is not there in Java)

GIVE ME A RITE SOLUTION FOR THIS ...
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41173
    
  45
For all our eyes' sake, please KeepItDown. Writing in all uppercase is considered rude all over the net.


Ping & DNS - my free Android networking tools app
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18546
    
  40

IS THERE ANY WAY TO INITIALISE THE NUMBERS AS BINARY ??(i think it is not there in Java)


I know this seems to be rubbing salt on the wound, but you don't seem to understand that this is more your issue, than Java's. There is no such thing as "INITIALISE THE NUMBERS AS BINARY" -- integers are in the integer format.

Decimal, Octal, Hexidecimal, are literal formats used to help the programmer specify that integer value. In your case, you want to specify a literal value -- and it is that, that you want in binary.

If there was a huge problem with mentally converting a binary (literal) value to hexidecimal or octal -- then programmers would have pushed to have binary literals added a long time ago.

Quite frankly, it takes seconds to mentally convert a binary literal value to its octal or hexidecimal counterpart. And you don't need a calculator.

110110101 --> 110 110 101 --> 0665

or

110110101 --> 1 1011 0101 --> 0x1B5


But... To answer your question. There is currently no easy way to specify a integer literal as a binary in Java. So... if you absolutely need to have it done as a binary integer literal, then you can't do it. Sorry.

Henry
Manisekar Chinnasami
Greenhorn

Joined: Apr 07, 2007
Posts: 24
thanks for your reply ...

finally i have got the solution for my problem ...

i have converted it to String and performed the & operation and back to binary number and stored as integer type ...

it working ....

.....
.....
bitWiseCheck = Integer.parseInt(Integer.toBinaryString((Integer.parseInt(Integer.toString(binVal[j]),2)) & (Integer.parseInt(Integer.toString(vsVal),2))));
.....
.....
Stefan Wagner
Ranch Hand

Joined: Jun 02, 2003
Posts: 1923

Originally posted by Manisekar Chinnasami:


finally i have got the solution for my problem ...
bitWiseCheck = Integer.parseInt(Integer.toBinaryString((Integer.parseInt(Integer.toString(binVal[j]),2)) & (Integer.parseInt(Integer.toString(vsVal),2))));


I don't think so.
Try your code for -3 and -2 for instance, or 16 and 15.

I guess all you need is

That is doing a bitwise AND.

Will show you the binary representation.


http://home.arcor.de/hirnstrom/bewerbung
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Binary in java - guide me
 
Similar Threads
Binary to Decimal conversion
A Hard Puzzle
how to shift unsigned binary byte(8bits)?
>>> operator
Mock Exam Fundamentals 1 - questions 6,7