john_typhoon_85
Grünschnabel
Hallo,
hab mich in diesem tutorium neu registriert und bin allerdings ein c und c++ anfänger.
Einiges ist mir sehr unklar und deswegen wollte ich fragen ob mir jemand in bezug auf bit-operatoren helfen kann.
Ich weiss zwar was diese operatoren wie zb.: &, |, <<..... machen aber sobald ich mir ein paar kleine c-programme darüber betrachte, versteh ich die verbindung und den zweck dieser operatoren nicht.
Hier zeige ich eine unserer aufgaben-programme und hätte da ein paar fragen über die unklarheiten. In diesem einfachen programm ist das ziel eine dezimalzahl, die was von benutzer eingegeben wird in eine binärzahl umzuformen und auszugeben. Die Fragen stelle ich neben den einzelnen codes.
#include<stdio.h>
int main()
{
int enter;
int number;
int mask;
printf("Please enter an integer:");
scanf("%d", &enter);
mask=0x80000000; //Ist diese Zahl die gleiche wie diese binärzahl
//10000000-00000000-00000000-00000000 ?
for(number=32; number>=1; number--)
{
if(mask&enter) //was ist der zweck dahinter?
{
printf("%c", '1');
}
else
{
printf("%c", '0');
}
enter<<=1; //warum setzt man hier einen bitshifting operator nach
//links
if(number==25 || number==17 || number==9)
{
printf("%c",'-');
}
}
printf("\n");
return 0;
}
Bin dankbar für eure Antworten.
Lg
hab mich in diesem tutorium neu registriert und bin allerdings ein c und c++ anfänger.
Einiges ist mir sehr unklar und deswegen wollte ich fragen ob mir jemand in bezug auf bit-operatoren helfen kann.
Ich weiss zwar was diese operatoren wie zb.: &, |, <<..... machen aber sobald ich mir ein paar kleine c-programme darüber betrachte, versteh ich die verbindung und den zweck dieser operatoren nicht.
Hier zeige ich eine unserer aufgaben-programme und hätte da ein paar fragen über die unklarheiten. In diesem einfachen programm ist das ziel eine dezimalzahl, die was von benutzer eingegeben wird in eine binärzahl umzuformen und auszugeben. Die Fragen stelle ich neben den einzelnen codes.
#include<stdio.h>
int main()
{
int enter;
int number;
int mask;
printf("Please enter an integer:");
scanf("%d", &enter);
mask=0x80000000; //Ist diese Zahl die gleiche wie diese binärzahl
//10000000-00000000-00000000-00000000 ?
for(number=32; number>=1; number--)
{
if(mask&enter) //was ist der zweck dahinter?
{
printf("%c", '1');
}
else
{
printf("%c", '0');
}
enter<<=1; //warum setzt man hier einen bitshifting operator nach
//links
if(number==25 || number==17 || number==9)
{
printf("%c",'-');
}
}
printf("\n");
return 0;
}
Bin dankbar für eure Antworten.
Lg