Skip to content

Instantly share code, notes, and snippets.

@chez14
Created May 21, 2017 14:15
Show Gist options
  • Save chez14/c2d76187dd568f2a75e32af4cc94fdd8 to your computer and use it in GitHub Desktop.
Save chez14/c2d76187dd568f2a75e32af4cc94fdd8 to your computer and use it in GitHub Desktop.
BitString? No Problem
public class EasyBitString {
/**
* Generate BitString secara brutal
* Well, best option kalo cara yang dari modul nggak inget sama sekali.
*
* Cara:
* Buat komputer menghitung 1 hingga angka tertentu, lalu kita conver angka
* tersebut jadi bitstring. Kita dapat menggunakan kelas Integer untuk
* melakukan hal serupa.
*
* Proof Of Concept:
* - angka inisial 0, artinya 0000 (kita contohin 4bit).
* - angka tujuan adalah 1111, yaitu 2^3 + 2^2 + 2^1 + 2^0.
* - Dari 0 hingga 15, pasti ada k-ary dari 1 dan 0.
* - int memiliki 4 byte, artinya 32 bit maksimal yang bisa di gunakan (atau 31 jika signed).
* - long memiliki 8 byte, artinya 64 bit maksimal yang bsia di gunakan (atau 64 jika signed).
*
*/
static class BitString {
public int getMaxPoint(int size) {
int temp=0;
for(int i=0; i<size; i++)
temp += Math.pow(2, i);
return temp;
}
public String padWithZero(String bitstring, int size){
size -= bitstring.length();
for(int i=0; i<size; i++)
bitstring = "0" + bitstring;
return bitstring;
}
public String[] generateBitString(int size) {
int max = getMaxPoint(size);
String[] temp = new String[max + 1];
for(int i=0; i<=max; i++)
temp[i] = padWithZero(Integer.toBinaryString(i), size);
return temp;
}
}
public static void main(String[] args) {
BitString bs = new BitString();
for(String a: bs.generateBitString(4))
System.out.println(a);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment