ConvertToBinary: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=== 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 ===
Zeile 13: Zeile 17:
=== 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 von Variablen ====

Version vom 25. Oktober 2017, 12:57 Uhr

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 von Variablen

convertToBinary('[pos=1]')
convertToBinary('[var=a]')

JUnit Tests

[Anzeigen]

@BeforeClass
public static void beforeTest() {
	
		fillInVariableMap.put(2, OMConverter.toObject("<OMOBJ><OMI>7</OMI></OMOBJ>"));

		exerciseVariableMap.put("b", OMConverter.toObject("<OMOBJ><OMI>7</OMI></OMOBJ>"));
	
}

@Test
public void testConvertToBinary1() {
	assertEquals(OMCreator.createOMSTR("10"),
			Evaluator.evaluate("convertToBinary(2)", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test
public void testConvertToBinary2() {
	assertEquals(OMCreator.createOMSTR("1101101111"),
			Evaluator.evaluate("convertToBinary(879)", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test
public void testConvertToBinary3() {
	assertNotEquals(OMCreator.createOMSTR("-11"),
			Evaluator.evaluate("convertToBinary(-3)", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test
public void testConvertToBinaryWithInput1() {
	assertEquals(OMCreator.createOMSTR("111"),
			Evaluator.evaluate("convertToBinary([pos=2])", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test
public void testConvertToBinaryWithInput2() {
	assertEquals(OMCreator.createOMSTR("0"),
			Evaluator.evaluate("convertToBinary([pos=1])", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test
public void testConvertToBinaryWithVariables1() {
	assertEquals(OMCreator.createOMSTR("0"),
			Evaluator.evaluate("convertToBinary([var=a])", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test
public void testConvertToBinaryWithVariables2() {
	assertEquals(OMCreator.createOMSTR("111"),
			Evaluator.evaluate("convertToBinary([var=b])", exerciseVariableMap, fillInVariableMap).getOMSTR());
}

@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testConvertToBinaryWithWrongInputCharacter() {
	Evaluator.evaluate("convertToBinary(a)", exerciseVariableMap, fillInVariableMap);
	fail();
}

@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testConvertToBinaryWithTwoArguments() {
	Evaluator.evaluate("convertToBinary(3, 2)", exerciseVariableMap, fillInVariableMap);
	fail();
}

@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testConvertToBinaryWithThreeArguments() {
	Evaluator.evaluate("convertToBinary(1, 2, 3)", exerciseVariableMap, fillInVariableMap);
	fail();
}

@Test(expected = UndefinedExerciseVariableException.class)
public void testConvertToBinaryWithMissingExcerciseVariable() {
	Evaluator.evaluate("convertToBinary([var=j])", exerciseVariableMap, fillInVariableMap);
	fail();
}

@Test(expected = UndefinedFillInVariableException.class)
public void testConvertToBinaryWithMissingInput() {
	Evaluator.evaluate("convertToBinary([pos=42])", exerciseVariableMap, fillInVariableMap);
	fail();
}

Hinweise

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