Solved

# How to combine two 8bits binary become 16bit binary

Posted on 2002-03-19
191 Views
import java.io.*;
import java.math.*;

class test {

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 = 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
Question by:lskoong
• 2

LVL 9

Expert Comment

ID: 6879940
What is the question?
0

LVL 16

Accepted Solution

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

class test {

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 = 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

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

### Suggested Solutions

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: