|
You last visited: Today at 20:01
Advertisement
cpp zahl in binär umwandeln (Schwer)
Discussion on cpp zahl in binär umwandeln (Schwer) within the C/C++ forum part of the Coders Den category.
10/12/2014, 16:17
|
#1
|
elite*gold: 0
Join Date: Apr 2010
Posts: 369
Received Thanks: 40
|
cpp zahl in binär umwandeln (Schwer)
hiho
ich muss mit cpp ein programm schreiben, dass eine zahl einliest und daraus die binär zahl ausgibt,
die schwirigkeit bestaht darin, dass für mich alle normalen möglichkeiten gestrichen wurde.
verboten sind der gebrauch von;
arrays, vecotrs, lists etc
funktionen zu definieren ausser der main etc,
meine idee besteht darin, das mit modulo 2 zu machen und nem loop, was soweit auch geht nur LSB und so steht an der falschen stelle, es kommt also genau die verkehrte binärzahl raus bei 6 kommt 011 anstelle von 0110
es kann ja nicht sein, dass ich die alle zuerst in ints speichern muss danach ausgeben?
nun hat wer ne idee dazu?
|
|
|
10/12/2014, 16:34
|
#2
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
mal genauer definieren, was verboten ist.
beispiel:
Code:
unsigned int blubb = 0x12345678;
for (int i = sizeof(blubb)*8-1; i >= 0; i--)
{
putc('0' + ((blubb >> i) & 1), stdout);
}
|
|
|
10/12/2014, 17:03
|
#3
|
elite*gold: 0
Join Date: Apr 2010
Posts: 369
Received Thanks: 40
|
hey
sizeof als funktion ist leider nicht zugelassen
zugelassen sind nur
loops, variablen, cin, cout solche sachen halt
so hab ichs versucht, aber problem wie geschildert
Code:
#include <iostream>
using namespace std;
int main ()
{
int n;
cout << "gib eine zahl n an ";
cin >> n ;
int var = (n);
cout << var;
while(var != 0){
cout << var%2;
var = var/2;
}
return 0;
}
|
|
|
10/12/2014, 17:07
|
#4
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
sizeof ist keine echte funktion, kannst auch einfach hart int i = 31 einsetzen wenn du ne 4byte zahl einliest.
|
|
|
10/12/2014, 17:08
|
#5
|
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
|
Was hindert dich daran das einfach auszurechnen ? sizeof(int) = 4 wenn du für 32bit compilst. Ersetzt du halt das sizeof(blubb)*8-1 mit 31.
Edit: Zu langsam ;(
|
|
|
10/12/2014, 17:32
|
#6
|
elite*gold: 0
Join Date: Apr 2010
Posts: 369
Received Thanks: 40
|
und was wenns keine 4 bit ist ? dann mit if und fallunterscheidungen ?
ich mag mich entsinnen, dass man das iwie mit dem negativen + 1 machen kann sieht jemand da ne möglichkeit ?
|
|
|
10/12/2014, 17:50
|
#7
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
c++ ordentlich mit einem buch lernen.
dich in einem verständlichem satz auszudrücken könnte auch helfen.
die größe ist durch den typ und den compilerdefinitionen fest vorgegeben.
|
|
|
10/14/2014, 09:51
|
#8
|
elite*gold: 198
Join Date: Mar 2011
Posts: 835
Received Thanks: 263
|
Ihr seit Helden ^^
Code:
int main()
{
int a, b, c;
printf("Enter an integer in decimal number system\n");
scanf("%d", &a);
printf("%d in binary number system is:\n", a);
for (b = 31; b >= 0; b--)
{
c = a >> b;
if (c & 1)
printf("1");
else
printf("0");
}
printf("\n");
return 0;
}
Die 31 kannst du auch für jede Zahl errechnen in dem du schaust wie oft sie sich /2 teilen lässt + 1 ^^
|
|
|
10/14/2014, 09:57
|
#9
|
elite*gold: 11
Join Date: Dec 2011
Posts: 274
Received Thanks: 39
|
Quote:
Originally Posted by ƬheGame
Ihr seit Helden ^^
Code:
int main()
{
int a, b, c;
printf("Enter an integer in decimal number system\n");
scanf("%d", &a);
printf("%d in binary number system is:\n", a);
for (b = 31; b >= 0; b--)
{
c = a >> b;
if (c & 1)
printf("1");
else
printf("0");
}
printf("\n");
return 0;
}
Die 31 kannst du auch für jede Zahl errechnen in dem du schaust wie oft sie sich /2 teilen lässt + 1 ^^
|
Nicht ganz perfekt, aber wir wollen ja nicht seine ganzen Hausaufgaben machen
|
|
|
10/14/2014, 11:26
|
#10
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
Quote:
Originally Posted by ƬheGame
Ihr seit Helden ^^
|
seid*
Und wo ist genau der unterschied zu meiner lösung, außer dass se wesentlich unperfomanter ist?
|
|
|
10/14/2014, 11:47
|
#11
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Deine Vorgaben sind jetzt keine wirklichen Einschränkungen, wie du es direkt als String ausgibst würde dir ja schon gezeigt, was du machen kannst um sie zwischen zu speichern, du erstellst eine struct bestehend aus einem Byte für die Länge, und einen boolpointer auf die Ziffern
Dann trägst du über eine schleife in den pointer wahr oder falsch ein, increased den pointer, und erhost die Länge um eins, und am Ende setzt du den pointer wieder auf die erste Ziffer
|
|
|
10/14/2014, 11:48
|
#12
|
elite*gold: 198
Join Date: Mar 2011
Posts: 835
Received Thanks: 263
|
Quote:
Originally Posted by Dr. Coxxy
seid*
Und wo ist genau der unterschied zu meiner lösung, außer dass se wesentlich unperfomanter ist?
|
Man darf kein sizeof brauchen  und wie er die 31 weg bekommt hab ich ihm ja gesagt also macht es alles was es soll.
Quote:
Originally Posted by warfley
Deine Vorgaben sind jetzt keine wirklichen Einschränkungen, wie du es direkt als String ausgibst würde dir ja schon gezeigt, was du machen kannst um sie zwischen zu speichern, du erstellst eine struct bestehend aus einem Byte für die Länge, und einen boolpointer auf die Ziffern
Dann trägst du über eine schleife in den pointer wahr oder falsch ein, increased den pointer, und erhost die Länge um eins, und am Ende setzt du den pointer wieder auf die erste Ziffer
|
und du bist dir sicher das du so einen Aufwand für sowas simples betreiben willst? ^^ Nicht das es nicht funktionieren würde. Man könnte das ganze auch mit ganz anderen Rechenmethoden machen die noch viel effizienter sind aber am ende muss die Aufgabe erfüllt sein und da ist der einfachste weg der richtige weg.
|
|
|
10/14/2014, 12:56
|
#13
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Quote:
|
und du bist dir sicher das du so einen Aufwand für sowas simples betreiben willst? ^^ Nicht das es nicht funktionieren würde. Man könnte das ganze auch mit ganz anderen Rechenmethoden machen die noch viel effizienter sind aber am ende muss die Aufgabe erfüllt sein und da ist der einfachste weg der richtige weg.
|
Naja wenn die aufgabe nur ist das es ausgegeben werden soll ist das natürlich kompletter overkill, aber wenn damit im nachinein weiter gerechnet werden soll ist das wohl die einfachste möglichkeit das ganze zwischen zu speichern, ohne arrays und listen zu verwenden
|
|
|
10/14/2014, 14:12
|
#14
|
elite*gold: 198
Join Date: Mar 2011
Posts: 835
Received Thanks: 263
|
Quote:
Originally Posted by warfley
Naja wenn die aufgabe nur ist das es ausgegeben werden soll ist das natürlich kompletter overkill, aber wenn damit im nachinein weiter gerechnet werden soll ist das wohl die einfachste möglichkeit das ganze zwischen zu speichern, ohne arrays und listen zu verwenden
|
Jo das meinte ich ^^
Habe auch immer viel zu viel gemacht bis einmal eine Prüfung kam die so gross war das du einfach keine Zeit hattest etwas schön zu machen. Sobald es für etwas Noten gibt muss man einfach schauen das man die Vorgaben erfüllt, wenn das nicht geht muss es wenigstens irgendwie laufen, aber nie zu viel Machen. Gibt sowieso nie plus Punkte ^^ Meiner Meinung nach der falsche Weg aber so ist es halt.
|
|
|
 |
Similar Threads
|
Hexadezimal ~ Binär ~ Dezimal
09/11/2013 - Tutorials - 24 Replies
Hallo liebe Community,
heute will ich mich mal nützlich machen und euch etwas beibringen. Das hier gibt es bestimmt xtausend mal im Internet. Aber noch nicht auf Elitepvpers. Daher wollte ich mich darum kümmern. Ich hoffe einigen wird dieses Tutorial etwas bringen.
Dann fangen wir mit der Erklärung an, was ich euch hier beibringen will.
Es geht um die Zahlensysteme: Hexadezimal - Binär - Dezimal
Ich erkläre euch, wie man diese umrechnet, und wie man mit ihnen umgeht und wo sie...
|
[VB.NET] Zahl > 50 elseif Zahl > 70 then...
02/25/2013 - .NET Languages - 5 Replies
Hi,
hab mal ein Problem und weiß nicht wie ich dazu bei google suchen soll.
Und zwar hab ich eine Zahl als STRING -.- und wollte mit dieser nun eine if Abfrage machen.
If Zahl > 50 then
....
|
Programme Binär darstellen
07/09/2011 - General Coding - 10 Replies
So... Aufgrund meiner Fächerübergreifenden Kompetenzprüfung in den Fächern Mathe und Technik (Allgemeine Computertechnik mit Binärcode (Programmierung)) sollte ich für den letzen Punkt, ein Programm als Binärcode darstellen.
Ich hab google schon benutzt und auch WinHex und Hex Editor Neo runtergeladen und probiert, habs aber nicht hingekriegt.
Von welcher Sprache aus das Programm geschrieben werden muss ist mir egal, da es nur was einfaches sein soll (cmd öffnen, shutdown Befehl eintippen),...
|
Binär Code Entziffern
12/12/2010 - General Coding - 23 Replies
Hallo,
Ich bräuchte dringent hilfe beim entschlüsseln dieses binär-codes oder so etwas in der art ich weiß es einfach nicht wie ich ihn entzifffern soll vielleicht kann mir ja einer helfen
Hier diese komische code:
0111
0110
1011
0010
0110
1101
|
Binär Code Entschlüssler
10/30/2010 - S4 League - 14 Replies
Hallo...
ein freund von mir hat mir diese seite gegeben:
Binary to Text (ASCII) Conversion
Was kann Diese seite so?
Text In Binärcodes
Text:
|
All times are GMT +1. The time now is 20:02.
|
|