ConvertToBinary: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Vorlage:Warnung|Warnung='''Wird in JACK3 durch die Funktionen [[convertIntegerToBinaryString]] (Umwandlung von Ganzzahlen) und [[convertDoubleToBinaryString]] (Umwandlung von Gleitkommazahlen) ersetzt.'''}}
==Zugehörige Evaluatoren==
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''convertToBinary'' wandelt eine Ganzzahl in ihre entsprechende Binärdarstellung um. Die Funktion erwartet eine Zahl und gibt eine Zahl zurück.
 
Die Funktion ''convertToBinary'' wandelt [[Ganzzahl]]en und [[Gleitkommazahl]]en in ihre entsprechende Binärdarstellung um.
Die Rückgabe ist eine [[Zeichenkette]].
 
* Negative [[Gleitkommazahl]]en werden nach dem IEEE_754 Standard konvertiert, d.h. es gibt immer 64 Stellen.
* Negative [[Ganzzahl]]en werden immer mit 32 Stellen dargestellt.


=== Syntax ===
=== Syntax ===
  convertToBinary(int zahl)
  convertToBinary([[Ganzzahl]] zahl)


=== Parameter ===
=== Parameter ===
Zeile 13: Zeile 21:
=== Beispiele ===
=== Beispiele ===
==== Standardfälle ====
==== Standardfälle ====
  convertToBinary('15')  --> returns 1111
  convertToBinary(15)  --> returns '1111'
convertToBinary(3)    --> returns '11'
convertToBinary(-3)  --> returns '11111111111111111111111111111101'
convertToBinary(1.2)  --> returns '11111111110011001100110011001100110011001100110011001100110011'
convertToBinary(-1.2) --> returns '1011111111110011001100110011001100110011001100110011001100110011'


==== Benutzung von Variablen ====
==== Benutzung mit Variablen ====
  convertToBinary('[pos=1]')
   
  convertToBinary('[var=a]')
  convertToBinary('[var=a]')


====JUnit Tests====
==== Benutzung mit studentischen Eingaben ====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Before
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("0"));
  placeFillInVariable(2, OMParser.parse("7"));
 
  placeExerciseVariable("a", OMParser.parse("0"));
  placeExerciseVariable("b", OMParser.parse("7"));
}


@Test
convertToBinary('[pos=1]')
public void testConvertToBinary() {
  assertTrue(10 == getEvaluator().getNumberResult("convertToBinary(2)"));
  assertTrue(1101101111 == getEvaluator().getNumberResult("convertToBinary(879)"));
  assertFalse(-11 == getEvaluator().getNumberResult("convertToBinary(-3)"));
}
 
@Test
public void testConvertToBinaryWithInput() {
  assertTrue(111 == getEvaluator().getNumberResult("convertToBinary([pos=2])"));
  assertTrue(0 == getEvaluator().getNumberResult("convertToBinary([pos=1])"));
}
 
@Test
public void testConvertToBinaryWithVariables() {
  assertTrue(0 == getEvaluator().getNumberResult("convertToBinary([var=a])"));
  assertTrue(111 == getEvaluator().getNumberResult("convertToBinary([var=b])"));
}
 
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testConvertToBinaryWithWrongInputCharacter() {
  getEvaluator().getNumberResult("convertToBinary(a)");
}
 
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testConvertToBinaryWithTwoArguments() {
  getEvaluator().getNumberResult("convertToBinary(3, 2)");
}
 
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testConvertToBinaryWithThreeArguments() {
  getEvaluator().getNumberResult("convertToBinary(1, 2, 3)");
}
 
@Test (expected=UndefinedExerciseVariableException.class)
public void testConvertToBinaryWithMissingExcerciseVariable() {
  getEvaluator().getNumberResult("convertToBinary([var=j])");
}
 
@Test (expected=UndefinedFillInVariableException.class)
public void testConvertToBinaryWithMissingInput() {
  getEvaluator().getNumberResult("convertToBinary([pos=42])");
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Für negative Zahlen wird das Zweierkomplement zurückgegeben.
* Für negative Zahlen wird das Zweierkomplement zurückgegeben.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Binärzahlen]][[Kategorie:JACK2]]

Aktuelle Version vom 27. März 2024, 14:20 Uhr

Wird in JACK3 durch die Funktionen convertIntegerToBinaryString (Umwandlung von Ganzzahlen) und convertDoubleToBinaryString (Umwandlung von Gleitkommazahlen) ersetzt.

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion convertToBinary wandelt Ganzzahlen und Gleitkommazahlen in ihre entsprechende Binärdarstellung um. Die Rückgabe ist eine Zeichenkette.

  • Negative Gleitkommazahlen werden nach dem IEEE_754 Standard konvertiert, d.h. es gibt immer 64 Stellen.
  • Negative Ganzzahlen werden immer mit 32 Stellen dargestellt.

Syntax

convertToBinary(Ganzzahl zahl)

Parameter

  • zahl - die Dezimaldarstellung der Zahl, die in Binär umgewandelt werden soll

Return Value

  • Gibt eine Ganzzahl zurück

Beispiele

Standardfälle

convertToBinary(15)   --> returns '1111'

convertToBinary(3)    --> returns '11'

convertToBinary(-3)   --> returns '11111111111111111111111111111101'

convertToBinary(1.2)  --> returns '11111111110011001100110011001100110011001100110011001100110011'

convertToBinary(-1.2) --> returns '1011111111110011001100110011001100110011001100110011001100110011'

Benutzung mit Variablen

convertToBinary('[var=a]')

Benutzung mit studentischen Eingaben

convertToBinary('[pos=1]')

Hinweise

  • Für negative Zahlen wird das Zweierkomplement zurückgegeben.