Tool "Binhex"
Binhex
A nice and easy tool to edit binary numbers and see them in hexadecimal and decimal. I have written it for harcoding commands for I2C sensors.
 
 
Sourcecode
This is the sourcecode written for processing, see http://processing.org/
PFont Font;
int[] Bits= {
  0, 0, 0, 0, 0, 0, 0, 0
};
String[] Adr= {
  "7", "6", "5", "4", "3", "2", "1", "0"
};
void setup()
{
  size(320, 160);
  Font= createFont("Aharoni-Bold", 15);
  textFont(Font);
}
void draw()
{
  background(200);
  fill(255);
  text("Binary", 20, 35);
  noFill();
  stroke(100);
  rect(20, 40, 220, 60);
  for (int i= 0; i < 8; i++)
  {
    fill(255);
    text(Adr[i], 35 + 25 * i, 60);
    fill(Bits[i] == 0 ? 0 : 255);
    rect(30 + 25 * i, 65, 20, 20);
    fill(Bits[i] == 0 ? 255 : 0);
    text(Bits[i] == 0 ? "0" : "1", 35 + 25 * i, 80);
  }
  int num= 0;
  for (int i= 0; i < 8; i++)
    num|= Bits[i] * 1<<(7-i);
  fill(255);
  text("Hex", 260, 35);
  fill(0);
  text(hex(num, 2), 275, 55);
  fill(255);
  text("Dec", 260, 80);
  fill(0);
  text(num, 275, 100);
  fill(230);
  stroke(100);
  rect( 20, 120, 80, 20);
  rect(120, 120, 80, 20);
  rect(220, 120, 80, 20);
  fill(0);
  text("Set all 0", 35, 135);
  text("Set all 1", 135, 135);
  text("Invert all", 235, 135);
}
void mouseReleased()
{
  for (int i= 0; i < 8; i++)
  {
    int xmin= 30 + 25 * i;
    int xmax= 30 + 25 * i + 20;
    int ymin= 65;
    int ymax= 65 + 20;
    if (mouseX >= xmin && mouseX <= xmax
      && mouseY >= ymin && mouseY <= ymax)
    {
      Bits[i]= Bits[i] == 0 ? 1 : 0;
    }
  }
  if (mouseX >= 20 && mouseX <= 100
    && mouseY >= 120 && mouseY <= 140)
  {
    //Set all 0
    for (int i= 0; i < 8; i++)
      Bits[i]= 0;
  }
  if (mouseX >= 120 && mouseX <= 200
    && mouseY >= 120 && mouseY <= 140)
  {
    //Set all 1
    for (int i= 0; i < 8; i++)
      Bits[i]= 1;
  }
  if (mouseX >= 220 && mouseX <= 300
    && mouseY >= 120 && mouseY <= 140)
  {
    //Invert all
    for (int i= 0; i < 8; i++)
      Bits[i]= Bits[i] == 0 ? 1 : 0;
  }
}
Please log in to post comments.
