From: Andre Coelho <andrealbergaria@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: fast binary calculator
Date: Sun, 5 Jul 2020 01:31:37 +0100 [thread overview]
Message-ID: <2199f3d5-cac9-99d8-3b69-55f0d8b245a0@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2345 bytes --]
ey
Ive made a program, that uses bit flips to quickly represent binary numbers
for instance, if i use a 128bit number than the algorithm uses
128+128+128 (and not 128*128)
for each bit.
Basically, it assigns slots to bits, so for instance
pos 1 pos 2 pos 3
0 0 0
1 1 1
so that reduces the time it takes to scan them. I also use bit flips to
change the bit on a particular slot.
i wrote both c and java files.
later
Here is the code in c
#include <stdio.h>
char flipBit(char c);
char flipBit(char c) {
if (c == '0')
return '1';
else
return '0';
}
int main() {
char binaryNumber[] = { '0','0','0','0',0 };
int slot1,slot2,slot3,slot4;
for (slot1=0 ; slot1 < 2 ; slot1++) {
printf("\n%s",binaryNumber);
for (slot2 =1 ; slot2 < 2 ; slot2++) {
binaryNumber[slot2] =
flipBit(binaryNumber[slot2]);
printf("\n%s",binaryNumber);
for (slot3=2 ; slot3 < 3 ; slot3++) {
binaryNumber[slot3] =
flipBit(binaryNumber[slot3]);
printf("\n%s",binaryNumber);
for (slot4=3 ; slot4 < 4 ; slot4++) {
binaryNumber[slot4] =
flipBit(binaryNumber[slot4]);
printf("\n%s",binaryNumber);
}
}
}
binaryNumber[slot1] =
flipBit(binaryNumber[slot1]);
printf("\n");
}
}
--
André Albergaria Coelho
andrealbergaria@gmail.com
[-- Attachment #2: binPath.c --]
[-- Type: text/x-csrc, Size: 964 bytes --]
#include <stdio.h>
char flipBit(char c);
char flipBit(char c) {
if (c == '0')
return '1';
else
return '0';
}
int main() {
char binaryNumber[] = { '0','0','0','0',0 };
int slot1,slot2,slot3,slot4;
for (slot1=0 ; slot1 < 2 ; slot1++) {
printf("\n%s",binaryNumber);
for (slot2 =1 ; slot2 < 2 ; slot2++) {
binaryNumber[slot2] = flipBit(binaryNumber[slot2]);
printf("\n%s",binaryNumber);
for (slot3=2 ; slot3 < 3 ; slot3++) {
binaryNumber[slot3] = flipBit(binaryNumber[slot3]);
printf("\n%s",binaryNumber);
for (slot4=3 ; slot4 < 4 ; slot4++) {
binaryNumber[slot4] = flipBit(binaryNumber[slot4]);
printf("\n%s",binaryNumber);
}
}
}
binaryNumber[slot1] = flipBit(binaryNumber[slot1]);
printf("\n");
}
}
[-- Attachment #3: binPath.java --]
[-- Type: text/x-java, Size: 1585 bytes --]
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class binPath {
// ao inves de se usar o numero , usas a posicao dele na posicao do numero (na array)
// ao inves de se usar o sistema de numeros (cada posicao ocupa um elemento vezes a base)
public static void main(String[] args) {
byte[] plaintext = {0,0,0,1,1,1,0,1};
// prints bits and positions
/*byte[] b = {0,0,0,0,0,0,0,0};
byte[] b2 = {1,1,1,1,1,1,1,1};
for (int pos=0; pos < 8; pos++) {
System.out.println("position "+pos+" "+b[pos]);
System.out.println("position "+pos+" "+b2[pos]);
}
*/
byte[] t = { 0,0,0,0 };
for (int slot1 = 0 ; slot1 < 2 ; slot1++) {
System.out.println();
System.out.print(Arrays.toString(t));
for (int slot2 = 1; slot2 < 2 ; slot2++) {
t[slot2] = bitFlip(t[slot2]);
System.out.println();
System.out.print(Arrays.toString(t));
for (int slot3 = 2; slot3 < 3 ; slot3++) {
t[slot3] = bitFlip(t[slot3]);
System.out.println();
System.out.print(Arrays.toString(t));
for (int slot4=3; slot4 < 4 ; slot4++) {
t[slot4] = bitFlip(t[slot4]);
System.out.println();
System.out.print(Arrays.toString(t));
}
}
}
t[slot1] = bitFlip(t[slot1]);
}
}
// Flips bits
public static byte bitFlip(byte b) {
if (b == 0)
return 1;
else
return 0;
}
}
reply other threads:[~2020-07-05 0:31 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2199f3d5-cac9-99d8-3b69-55f0d8b245a0@gmail.com \
--to=andrealbergaria@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).