Solved

How to combine two 8bits binary become 16bit binary

Posted on 2002-03-19
3
191 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

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
array6 challenfge 6 62
countHi2 challenge 7 44
mapBully challenge 6 88
for i loop in grovy 1 32
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

708 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

15 Experts available now in Live!

Get 1:1 Help Now