Created
May 21, 2017 14:15
-
-
Save chez14/c2d76187dd568f2a75e32af4cc94fdd8 to your computer and use it in GitHub Desktop.
BitString? No Problem
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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