[JAVA] Das Konvertieren von Dezimal in Binär ist ohne Schreiben zu schwierig! !!

Ich habe binäre Konvertierung in Mathematik gelernt

Ich besuche die Informatikfakultät einer bestimmten nationalen Universität und habe in letzter Zeit häufig Binärzahlen in informationswissenschaftlichen Experimenten verwendet. In dem Experiment wurde die entworfene Logikschaltung an eine Karte mit einer integrierten Schaltung namens FPGA gesendet, und es war wie bei einem Universitätsstudenten wie einem Grundschüler wie "Ich habe 1 plus 1 gemacht". Ich mache das. Ich weiß nicht, was es bedeutet, aber es ist interessant, weil vorzeichenbehaftete Binärzahlen negative Zahlen sein können, indem positive und positive Zahlen hinzugefügt werden. Ich bin jedoch seit 20 Jahren an Dezimalzahlen gewöhnt und denke im Grunde an Dinge in Dezimalzahlen. Mein Gehirn ist nicht Kamen Rider Zero One. (Ich weiß es nicht, weil ich den tatsächlichen Kamen-Fahrer nicht gesehen habe) Wie erwartet ist es möglich, durch geheime Berechnung bis zu 5 bis 6 Stellen zwischen Dezimal- und Binärzahlen umzuwandeln. Wenn die Anzahl der Stellen diese überschreitet, verwenden Sie einen Computer oder berechnen Sie manuell. In diesem Artikel habe ich ein Konvertierungsprogramm von Dezimal zu Binär entdeckt, das ich vor langer Zeit erstellt habe, als ich kürzlich nach einem alten Computer gefischt habe. Deshalb möchte ich es vorstellen.

Zuallererst das Programm

Diesmal habe ich es in Java geschrieben. Als ich im ersten Studienjahr war, habe ich nur Java angesprochen, also glaubte ich, dass es auf dieser Welt nur Japanisch, Englisch und Java gibt. Es ist eine Zeit, in der ich noch nicht an das Programmieren gewöhnt bin. Ich denke, es gibt viele Dinge, die ich über Design und Codierung sagen möchte, aber ich hoffe, Sie können es mit einem warmen Auge sehen, als ob Sie das Wachstum Ihrer süßen Enkelkinder beobachten würden. Fügen Sie es so ein, wie es ist, ohne Änderungen vorzunehmen.

binary_change.java


import java.util.Stack;
import java.util.*;

class binary_change{
  public static void main(String args[]){
    Scanner sc = new Scanner(System.in);

    System.out.println("Input number.");
    int inputnum = sc.nextInt();

    transrate(inputnum);
  }

  public static void transrate(int num){
    final int numnumnum = num;
    Stack stack = new Stack();
    int stacksize = 0;
    stacksize = stack.size();
    int numnum = 1;
    do{
      numnum = numnum * 2;
      stacksize ++;
    }while(numnum < num);

    System.out.println("stacksize is " + stacksize);
    int nextnum1;
    int nextnum2;
    int surplus;
    int surplus1;
    int surplus2;

    surplus = num % 2;
    System.out.println("2 )" + num + "..." + surplus);
    System.out.println("----------");
    stack.push(surplus);
    do{
      nextnum1 = num / 2;
      surplus1 = num % 2;
      if (nextnum1 == 1) {
        break;
      }

      num = nextnum1;

      nextnum2 = num / 2;
      surplus2 = num % 2;


      System.out.println("2 )" + nextnum1 + "..." + surplus2);
      System.out.println("----------");
      stack.push(surplus2);
      if (nextnum2 == 1) {
        System.out.println("2 )" + nextnum2);
        stack.push(nextnum2);
        break;
      }

    }while (true);
    System.out.println("Deciminal number ---> Binary number");
    System.out.print(numnumnum + " ---> ");
    for (int i = 0; i < stacksize; i ++) {
      System.out.print(stack.pop());
    }
    System.out.println(" ");
  }
}

Obwohl ich normalerweise überhaupt kein Java schreibe, kann ich diesen Code oder Streich nach 3 Jahren Wachstum verstehen. Aber wenn ich genau darüber nachdenke, denke ich, dass ich solche Tool-Programme in Gamshala geschrieben habe. Ich denke, diese Art der Akkumulation ist wirklich wichtig.

Versuchen wir nun zu sehen, wie es sich verhält.

takeshitatakushuunoMacBook-ea:Desktop hirosugutakeshita$ java binary_change
Input number.
810
stacksize is 10
2 )810...0
----------
2 )405...1
----------
2 )202...0
----------
2 )101...1
----------
2 )50...0
----------
2 )25...1
----------
2 )12...0
----------
2 )6...0
----------
2 )3...1
----------
2 )1
Deciminal number ---> Binary number
810 ---> 1100101010 
takeshitatakushuunoMacBook-ea:Desktop hirosugutakeshita$ 

Programm Beschreibung

Wie Sie dem Ergebnis entnehmen können, berechnet dieser Typ die Konvertierung von Hand, obwohl es sich um einen Computer handelt. Es gibt zwei Methoden, den Haupt- und den Konvertierungsteil. Fast alle Berechnungen werden in "transrate ()" durchgeführt. Die Hauptmethode nimmt nur einen Wert und gibt ein Argument.

Ich werde auch kurz den Inhalt von "transrate ()" erklären. Ich schaue es mir immer noch an, aber es ist wirklich wie Handschrift. Teilen Sie durch 2 und teilen Sie in Quotient und Rest, und der Rest wird im Stapel gestapelt. Speichern Sie den Quotienten in einer Variablen für die nächste Berechnung. Danach gebe ich den Quotienten und den Rest an einer schönen Stelle aus, so dass es wie eine Pinselberechnung aussieht, und fahre fort, bis der letzte Quotient 1 wird. Es ging darum, die Anzahl der Überschüsse (diesmal 0 oder 1) bei der schriftlichen Berechnung der binären Konvertierung zu lesen (wie dies bei anderen Basiskonvertierungen der Fall ist). Ich denke, es wurde im Mathe-Lehrbuch geschrieben. Daher halte ich es für eine Idee, den Stapel für die zu verwendende Datenstruktur auszuwählen. Da die Werte in umgekehrter Reihenfolge des Stapelns ausgegeben werden, entspricht dies dem Lesen, da der verbleibende Teil des Schreibens ausgeführt wird.

スタック .png

Denken

Ich denke nicht, dass dies ein "Algorithmus" ist, aber ich denke, dass es ziemlich interessant ist, weil es in Binärzahlen konvertiert, ohne die Konvertierungsberechnungsbibliothek zu verwenden, die wahrscheinlich existiert, wenn Sie danach suchen. Verwenden Sie dieses Tool, wenn Sie etwa 100 Fragen zum Konvertieren in Binär mithilfe der Pinselberechnung haben.

Ich finde es manchmal interessant, alte Programme zu sehen. Ich spürte nicht nur mein eigenes Wachstum, sondern stellte auch fest, dass es schwierig sein würde zu lesen, wenn ich es so schrieb. Manchmal dachte ich, es wäre schön, das zu tun. (Extrem locker)

Recommended Posts

Das Konvertieren von Dezimal in Binär ist ohne Schreiben zu schwierig! !!
Vorsichtsmaßnahmen beim Konvertieren von Dezimal in Binär