Solved

How to combine two 8bits binary become 16bit binary

Posted on 2002-03-19
3
213 Views
Last Modified: 2010-03-31
import java.io.*;
import java.math.*;

class test {
   
    static BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
    static PrintWriter screen = new PrintWriter(System.out, true);
   
    public static void main(String[] args) throws IOException {
       
        String str;
        char[] charArray;
        String[] subs;
        int[] q;
       
        screen.println("Try System");
        screen.println("Enter a sentences");
        screen.println();
        str = keyboard.readLine();
        //str = str.toLowerCase();        
        char[] array = new char [str.length()];
        StringBuffer buf = new StringBuffer();
        int dis = 1 << 7;
       
        for ( int i = 0; i < str.length(); i++ ) {
           
            array[i] = str.charAt(i);
           
            for (int sh = 1; sh <= 8; sh++) {
               
                buf.append(( array[i] & dis ) == 0 ? '0' : '1');
                array[i] <<= 1;
            }                                                                  
        }                                                                      
        String s = buf.toString();                                              
        System.out.println(s);
}

// what i want is somethin like this
01010011 01100101 01100011 01110010 01100101 01110100 00100001
and taking 8 bit numbers and representing then side by side as one 16 bit number. In this example, there are
7 original characters (Secret!) that from 4 blocks:
0101001101100101   0110001101110010   0110010101110100   0000000000100001
NOTE that the last character is padded with zeros
0
Comment
Question by:lskoong
  • 2
3 Comments
 
LVL 9

Expert Comment

by:Venci75
ID: 6879940
What is the question?
0
 
LVL 16

Accepted Solution

by:
Peter Kwan earned 300 total points
ID: 6880019
import java.io.*;
import java.math.*;

class test {
   
   static BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
   static PrintWriter screen = new PrintWriter(System.out, true);
   
   public static void main(String[] args) throws IOException {
       
       String str;
       char[] charArray;
       String[] subs;
       int[] q;
       
       screen.println("Try System");
       screen.println("Enter a sentences");
       screen.println();
       str = keyboard.readLine();
       //str = str.toLowerCase();        
       char[] array = new char [str.length()];
       StringBuffer buf = new StringBuffer();
       int dis = 1 << 7;
       
       for ( int i = 0; i < str.length(); i++ ) {

           if (str.length() % 2 == 1) {
              for (int sh1=1; sh1<=8; sh1++)
                 buf.append('0');
           }
           
           array[i] = str.charAt(i);
           
           for (int sh = 1; sh <= 8; sh++) {
               
               buf.append(( array[i] & dis ) == 0 ? '0' : '1');
               array[i] <<= 1;
           }

           i++;

           if (i < str.length()) {
             array[i] = str.charAt(i);
             
             for (int sh2 = 1; sh2 <= 8; sh2++) {
               
               buf.append(( array[i] & dis ) == 0 ? '0' : '1');
               array[i] <<= 1;
             }
           }
 
          buf.append(' '); // added for debug
       }                                                                      
       String s = buf.toString();                                              
       System.out.println(s);
   }
}
0
 
LVL 9

Expert Comment

by:Venci75
ID: 6880030
if you have this method:
public static String getBinaryString(byte b) {
    int dis = 1 << 7;
    StringBuffer buf = new StringBuffer();
    for (int i = 0; i < 8; i++) {
        buf.append((b&dis)==0?'0':'1');
        b <<= 1;
    }
    return buf.toString();
}

you can extract the bites of the char in this way:
char ch = 'a';
System.out.println(
getBinaryString((byte)(ch & 0x00ff)) + " " + getBinaryString((byte)(ch >> 8)));
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…

816 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now