Funktion hinzufügen von zwei binären zahlen in c++
In c++, wie kann ich ein Programm schreiben, Lesen, 2 Binär-zahlen, dann drucken Sie das Ergebnis der addition, mit der eine Funktion zum Lesen der Binär-zahlen, jede Zahl hat 4 bit, und mit einer Funktion zum hinzufügen von (Binär 1, Binär 2) ?!
Finde ich dieses Programm, aber ich möchte es nicht mit arrays brauche ich es nur mit Funktionen.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int a[4];
int b[4];
int carry=0;
int result[5];
a[0]=1;
a[1]=0;
a[2]=0;
a[3]=1;
b[0]=1;
b[1]=1;
b[2]=1;
b[3]=1;
for(int i=0; i<4; i++)
{
if(a[i]+b[i]+carry==3)
{
result[i]=1;
carry=1;
}
if(a[i]+b[i]+carry==2)
{
result[i]=0;
carry=1;
}
if(a[i]+b[i]+carry==1)
{
result[i]=1;
carry=0;
}
if(a[i]+b[i]+carry==0)
{
result[i]=0;
carry=0;
}
}
result[4]=carry;
for(int j=4; j>=0; j--)
{
cout<<result[j];
}
cout<<endl;
return 0;
}
- Wie sind Sie mit der Speicherung der binären Ziffern, wenn nicht in einem array?
- benutzen Sie std::bitset
- Der gepostete code ist voller Fehler. Es geht nach draußen, die definierte Größe des arrays (alle drei arrays), und die zusätzlich entstehenden in 1 ist falsch-Einstellung ist das Ergebnis 0. Und natürlich könnte man das VIEL einfacher mit einigen bitweise Operatoren.
- -1... Sie wollen uns Ihre Hausaufgaben machen, Sie fand einige code online, aber nicht plagiieren es nur, weil es ist ein Chaos, es gibt keine Erwähnung von, wie die input-und output geschehen soll (alle gesunden Computer arbeiten Binär!), und Sie sind sich nicht einmal sicher, ob Sie verpflichtet sind, nicht zu verwenden mehrere Funktionen.
- guter Punkt.
bitset
kam nie zu mir, da ich in der Regel verlassen sich aufstrtol
für diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
gibt es keine solche eine Funktion wie leider
std::iostream
undscanf
-Familie unterstützt Okt, hex, dec aber nicht binäre numerische Darstellungen.Grundsätzlich verwenden
strtol
und einitoa
. Da letzteres steht nicht auf dem gcc (weil es ist nicht ANSI-konform), habe ich ein snippet für die Umsetzung deritoa
.cin
würde es tun. Stellt sich heraus, ich habe zu verlassenstrtol
und eine nicht vorhandeneitoa
. (Auch wenn er auf MSVC wahrscheinlich hat eritoa
. Außerdemitoa
undstrtol
ist sicherlich näher an der eine Funktion, - Anforderung (obwohl, zwei).itoa
Umsetzung. Sicherlich bevorzuge ich"digits"[index]
Art der Verschleierung. Aber ich mag es, sorry, wenn Sie nahm es den falschen Weg - ich hasse es, wenn Schülerinnen und Schüler bekommen eine Lösung können Sie nur die hand auf Ihre Lehrer und die Lehrerin glaubt, Sie haben die Arbeit getan.itoa
ist nicht ein guter KUSS Beispiel, aber ein Stück intelligent-böse-code. (Einen ähnlichen thread auf stackoverflow empfiehlt die Verwendung von Makros, die mehr obfuscatorily Technik-anspruchsvoll.std::bitset
unterstützt der binären I/O mit<<
und>>
. Es ist nur notwendig für I/O, dannto_ulong
und seine Umwandlung in den Bau vonunsigned long
kümmert sich um den rest. Das ist wahrscheinlich das, was Benannt wurde, bezieht. Aber keiner von diesen ist wohl erlaubt, in einen Anfänger-Kurs, das ist, was macht die ganze Frage sinnlos.itoa
Funktion in deinem snippet.