Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 20:01

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #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?
blubber6 is offline  
Old 10/12/2014, 16:34   #2
 
Dr. Coxxy's Avatar
 
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);
	}
Dr. Coxxy is offline  
Old 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;

}
blubber6 is offline  
Old 10/12/2014, 17:07   #4
 
Dr. Coxxy's Avatar
 
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.
Dr. Coxxy is offline  
Thanks
1 User
Old 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 ;(
th0rex is offline  
Thanks
1 User
Old 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 ?
blubber6 is offline  
Old 10/12/2014, 17:50   #7
 
Dr. Coxxy's Avatar
 
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.
Dr. Coxxy is offline  
Old 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 ^^
ƬheGame is offline  
Thanks
1 User
Old 10/14/2014, 09:57   #9
 
IchBin<<'s Avatar
 
elite*gold: 11
Join Date: Dec 2011
Posts: 274
Received Thanks: 39
Quote:
Originally Posted by ƬheGame View Post
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
IchBin<< is offline  
Old 10/14/2014, 11:26   #10
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by ƬheGame View Post
Ihr seit Helden ^^
seid*

Und wo ist genau der unterschied zu meiner lösung, außer dass se wesentlich unperfomanter ist?
Dr. Coxxy is offline  
Thanks
1 User
Old 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
warfley is offline  
Old 10/14/2014, 11:48   #12
 
elite*gold: 198
Join Date: Mar 2011
Posts: 835
Received Thanks: 263
Quote:
Originally Posted by Dr. Coxxy View Post
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 View Post
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.
ƬheGame is offline  
Old 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
warfley is offline  
Old 10/14/2014, 14:12   #14
 
elite*gold: 198
Join Date: Mar 2011
Posts: 835
Received Thanks: 263
Quote:
Originally Posted by warfley View Post
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.
ƬheGame is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.