ieee testprogramm

kleines c++ programm um ieee floats als bits darzustellen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

ieee testprogramm
laesst sich leicht erweitern.
achtung: die bits werden in umgekehrter reihenfolge getestet und der string quasi von hinten aufgebaut.
musste nen kleinen hack einbauen (void* pointer reinterpret_cast ging irgendwie nicht)
sollte sicher sein, benutzung aber auf eigene gefahr!

#include <iostream>

#include <string>

using namespace std;



void print32bits(void* p, bool showparts);

int main(int argc, char* argv[])

{

	cout<<sizeof(unsigned int)<<" "<<sizeof(float)<<"\n";

	float f=3.1415926f;

	unsigned int ui=255;

	signed int si=-255;



	cout<< f << "\n";

	print32bits((void*)&f, true);

	cout<< ui << "\n";

	print32bits((void*)&ui, false);

	cout<< si << "\n";

	print32bits((void*)&si,false);

	int choice=1;

	while(choice!=0 && cin.good())

	{

	cout<<"\n-----------------------------\nfloat(1), int(2), unsigned int(3) oder ende(0)?";

	cin>>choice;

	cout<<"\nZahl eingeben:";

		switch (choice)

		{

		case 1:

			cin>>f;

			cout<<f<<":\n";

			print32bits((void*)&f,true);

			break;

		case 2:

			cin>>si;

			cout<<si<<":\n";

			print32bits((void*)&si,false);

			break;

		case 3:

			cin>>ui;

			cout<<ui<<":\n";

			print32bits((void*)&ui,false);

			break;

		}

	}

	return 0;

}



void print32bits(void* p, bool showparts)

{

	unsigned int q=*(unsigned int*)p;

	std::string res;	

	for(int x=0;x<32;x++)

	{

	if(q&1)res="1"+res;

	else res="0"+res;

	if(showparts&&(x==30||x==31-9))res=" "+res;

	q=q>>1;

	}

	cout<<res<<"\n";

}


hmm nett, aber ohne Zeilennummern waere es noch leichter herauszukopieren :wink:


gratz heeen. hast wohl zu viel freizeit. ich werde dich mal für paar kurse eintragen


nochmal ohne nummern und ohne doppelnewline


Es gibt die Programme auch schon fertig.
Wenn man einmal nicht zuviel Zeit hat :wink:

http://www.h-schmidt.net/FloatApplet/IEEE754de.html


hier stand nix :smiley:

peace