|
| variabel som binært tal Fra : krogh | Vist : 529 gange 100 point Dato : 14-05-02 11:24 |
|
jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel som et binært tal
det skal være være en metode der kan køre under C
| |
| Kommentar Fra : PARKENSS |
Dato : 14-05-02 12:58 |
|
Hej
Prøv lige at uddybe dit Spørgsmål lidt nærmere ???
Mvh
Parkenss
| |
|
"krogh" <krogh.news@kandu.dk> wrote in message
news:YE4E8.4938$HN.196606@news010.worldonline.dk...
> jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel
> som et binært tal
>
> det skal være være en metode der kan køre under C
int a = 42; // lægger 42 over i variablen 'a' som et binært tal.
Alle tal er jo binære. Eller hexadecimale. Eller hvordan man nu vælger at se
dem.
Vil du have en den binære repræsentation som en streng (sådan at din
variabel er en strengvariabel), eller har du i forvejen tallet som en binær
strengrepræsentation, eller hvordan?
Du bliver nok nødt til at præcisere problemet noget mere.
Bjarke
| |
|
krogh wrote:
> jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel
> som et binært tal
>
> det skal være være en metode der kan køre under C
>
Hvis du mener noget i stil med
int a = 0b1110 1101 1011;
så kan det ikke lade sige gøre i C. Konverter tallet til hexadecimalt,
hvor det stadig er rimeligt let at se den binære repræsentation, og som
C kan klare. Så kan du skrive
int a = 0xEDB
/David
| |
| Accepteret svar Fra : Nyhedsbruger | Modtaget 110 point Dato : 14-05-02 11:53 |
|
David Rasmussen wrote:
> krogh wrote:
>
>> jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel
>> som et binært tal
>> det skal være være en metode der kan køre under C
>
>
> Hvis du mener noget i stil med
>
> int a = 0b1110 1101 1011;
>
Jeg mente selvfølgelig
int a = 0b111011011011;
:)
/David
| |
|
David Rasmussen <david.rasmussen@gmx.spam.egg.sausage.and.spam.net> skrev:
> Hvis du mener noget i stil med
>
> int a = 0b1110 1101 1011;
>
> så kan det ikke lade sige gøre i C. Konverter tallet til hexadecimalt,
.... eller oktalt:
int a = 07333; // Konstanter som begynder med 0 er oktale.
| |
|
"krogh" <krogh.news@kandu.dk> writes:
> jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel
> som et binært tal
accu-general malinglisten havde en diskussion om det en gang i februar.
Den mest interessante post, er nok den her, som vist foreslår
en løsning i C.
http://www.accu.org/hypermail/private/accu-general/200202/0229.htm
mvh Jonas
| |
|
"krogh" <krogh.news@kandu.dk> wrote in message
news:YE4E8.4938$HN.196606@news010.worldonline.dk...
> jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel
> som et binært tal
>
> det skal være være en metode der kan køre under C
har du en tekstrepræsentation af det binære tal, eller hvordan ligger det?
Jeg kunne selv forestille mig noget der minder om :
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
int main(int argc, char **argv)
{
char * BinNumString = "010101010010101010";
int i, p;
int BinNumInt;
BinNumInt = 0;
p=0;
for (i=strlen(BinNumString)-1; i>=0; i--, p++, BinNumInt += pow(2,
p)*(BinNumString[i]=='1'?1:0));
printf("%sb = %id\n", BinNumString, BinNumInt); // resultatet skal være
87210d
getch();
return 0;
}
| |
| Godkendelse af svar Fra : krogh |
Dato : 16-05-02 12:40 |
|
Tak for svaret David Rasmussen.
det er måske et af de nemmere spørgsmål, men jeg er forholdsvis ny i faget, så det er rart at få lidt kvalificeret hjælp.
Jeg takker
MVH
Krogh
| |
|
Rasmus Kaae <macaw@WHATEVERMAKESYOUHAPPYhotmail.com> skrev:
> "krogh" <krogh.news@kandu.dk> wrote in message
>> jeg vil gerne finde ud af hvordan man lægger en værdi over i en variabel
>> som et binært tal
> char * BinNumString = "010101010010101010";
> int i, p;
> int BinNumInt;
>
> BinNumInt = 0;
> p=0;
> for (i=strlen(BinNumString)-1; i>=0; i--, p++, BinNumInt += pow(2,
> p)*(BinNumString[i]=='1'?1:0));
Hmm, den for-sætning er svær at læse og sikkert også forholdsvis
langsom at udføre. Jeg vil foreslå denne forsimpling (utestet):
BinNumInt = 0
for ( ; *BinNumString ; BinNumString++)
{
BinNumInt <<= 1;
BinNumInt += *BinNumString - '0';
}
>> det skal være være en metode der kan køre under C
> #include <conio.h>
> getch();
Disse 2 linjer kan ikke køre under (standard) C.
| |
|
"Byrial Jensen" <bjensen@nospam.dk> wrote in message
news:slrnae7vf5.1h4.bjensen@ask.ask...
> Rasmus Kaae <macaw@WHATEVERMAKESYOUHAPPYhotmail.com> skrev:
> > "krogh" <krogh.news@kandu.dk> wrote in message
> >> jeg vil gerne finde ud af hvordan man lægger en værdi over i en
variabel
> >> som et binært tal
>
> > char * BinNumString = "010101010010101010";
> > int i, p;
> > int BinNumInt;
> >
> > BinNumInt = 0;
> > p=0;
> > for (i=strlen(BinNumString)-1; i>=0; i--, p++, BinNumInt += pow(2,
> > p)*(BinNumString[i]=='1'?1:0));
>
> Hmm, den for-sætning er svær at læse og sikkert også forholdsvis
> langsom at udføre. Jeg vil foreslå denne forsimpling (utestet):
det var lidt min pointe
> >> det skal være være en metode der kan køre under C
>
> > #include <conio.h>
> > getch();
>
> Disse 2 linjer kan ikke køre under (standard) C.
Formentlig ikke, men hvor mange ansi-c compilere bruger du? gcc og vc er
ligeglade.
| |
|
[ Rasmus Kaae ]
[ snip ]
> > > #include <conio.h>
> > > getch();
> >
> > Disse 2 linjer kan ikke køre under (standard) C.
>
> Formentlig ikke, men hvor mange ansi-c compilere bruger du? gcc og
> vc er ligeglade.
Nei:
$ gcc foo.c
foo.c:3: conio.h: No such file or directory
$
ivr
--
C++: "an octopus made by nailing extra legs onto a dog"
-- Steve Taylor, 1998
| |
|
Rasmus Kaae <macaw@WHATEVERMAKESYOUHAPPYhotmail.com> skrev:
> "Byrial Jensen" <bjensen@nospam.dk> wrote in message
>>
>> Hmm, den for-sætning er svær at læse og sikkert også forholdsvis
>> langsom at udføre. Jeg vil foreslå denne forsimpling (utestet):
>
> det var lidt min pointe
Ikke forstået. Hvad er pointen i at skrive svært læseligt kode?
>> Disse 2 linjer kan ikke køre under (standard) C.
>
> Formentlig ikke, men hvor mange ansi-c compilere bruger du? gcc og vc er
> ligeglade.
Det er ikke interessant for dette hvad jeg bruger. Pointen er at
Krogh spurgte efter en løsning i C.
(Men nu du spørger, svarer jeg da gerne: Jeg bruger tiest 2
C-oversættere. Den ene (en kommerciel oversætter til
ARM-arkitektur) er stort set en ren ANSI C-oversætter med enkelte
udvidelser og noget fejlbehæftet. Den anden er gcc som heldigvis
nu stort set forstår C99. Ingen af de to kender conio.h).
| |
|
OK, men conio.h bliver så udelukkende brugt til getch() så man kunne
beskylde dig for at være pedant, og det vil jeg så gøre - pedant.
> Det er ikke interessant for dette hvad jeg bruger. Pointen er at
> Krogh spurgte efter en løsning i C.
| |
|
Rasmus Kaae skrev:
>OK, men conio.h bliver så udelukkende brugt til getch() så man kunne
>beskylde dig for at være pedant, og det vil jeg så gøre - pedant.
Er man pedant hvis man gør opmærksom på at en angivet løsning
ikke virker? Du kommer ikke langt med programmering hvis du ser
stort på den slags ting.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
|
Rasmus Kaae wrote:
> OK, men conio.h bliver så udelukkende brugt til getch() så man kunne
> beskylde dig for at være pedant, og det vil jeg så gøre - pedant.
>
OK, så vil jeg beskylde dig for at være idiot - idiot.
Det er totalt ligegyldigt hvor meget der bruges fra en given header-fil.
I det øjeblik der bruges en ting fra en non-compliant header-fil, er
programmet aldeles ikke-portabelt.
/David
| |
|
"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote in message
news:lsaceu0lqnkk8lcsou7rr6cpjqgb6kj49m@sunsite.auc.dk...
> Rasmus Kaae skrev:
>
> >OK, men conio.h bliver så udelukkende brugt til getch() så man kunne
> >beskylde dig for at være pedant, og det vil jeg så gøre - pedant.
>
> Er man pedant hvis man gør opmærksom på at en angivet løsning
> ikke virker? Du kommer ikke langt med programmering hvis du ser
> stort på den slags ting.
det er da pedanteri når det eneste getch() (=> conio.h) bliver brugt til er
at holde en pause efter programmet udførsel.
FUT: null
| |
|
> OK, så vil jeg beskylde dig for at være idiot - idiot.
ja, gør du det.
> Det er totalt ligegyldigt hvor meget der bruges fra en given header-fil.
> I det øjeblik der bruges en ting fra en non-compliant header-fil, er
> programmet aldeles ikke-portabelt.
ja, det har du ret i - men mon ikke pointen i den lille stump kode lå
andetsteds end i getch()/conio?
| |
|
[ Rasmus Kaae ]
[ snip ]
> det er da pedanteri når det eneste getch() (=> conio.h) bliver brugt
> til er at holde en pause efter programmet udførsel.
Da er det et utrolig dustete _miljø_, som ikke tillater å se en
resultater som programmet produserer. Og det å rette det opp kan
gjøres på en standard måte (dog, på bekostning av 1 tastetrykk
ekstra).
ivr
--
C++: "an octopus made by nailing extra legs onto a dog"
-- Steve Taylor, 1998
| |
|
"Igor V. Rafienko" <igorr@ifi.uio.no> wrote in message
news:xjvr8k5lrt6.fsf@albino.ifi.uio.no...
> [ Rasmus Kaae ]
>
> [ snip ]
>
> > det er da pedanteri når det eneste getch() (=> conio.h) bliver brugt
> > til er at holde en pause efter programmet udførsel.
>
>
> Da er det et utrolig dustete _miljø_, som ikke tillater å se en
> resultater som programmet produserer. Og det å rette det opp kan
> gjøres på en standard måte (dog, på bekostning av 1 tastetrykk
> ekstra).
jeg troede dette var en dansk nyhedsgruppe.
| |
|
"Rasmus Kaae" <macaw@WHATEVERMAKESYOUHAPPYhotmail.com> wrote
> jeg troede dette var en dansk nyhedsgruppe.
Det er overvejende en nyhedsgruppe for folk der er i stand til at tænke.
Der er ikke nogen grund til at underkende de mange gode råd, præget af en
stor viden, som Igor V. Rafienko har kommet med på denne nyhedsgruppe gennem
årene, alene på grund af sprog.
Det er for primitivt at forfalde til småracistiske kommentarer, blot fordi
andre ikke er enige i dine synspunkter, og du ikke har reele argumenter med
substans.
Venlig hilsen
Mogens Hansen
| |
|
Rasmus Kaae skrev:
>jeg troede dette var en dansk nyhedsgruppe.
Det er det skam også. Som i stort set alle andre grupper i verden
er det tilladt at skrive på et hvilket som helst sprog.
Personligt ville jeg svært nødig undvære den kompetente og
omfattende hjælp som Igor er parat til at give.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
|
> > jeg troede dette var en dansk nyhedsgruppe.
>
> Det er overvejende en nyhedsgruppe for folk der er i stand til at tænke.
> Der er ikke nogen grund til at underkende de mange gode råd, præget af en
> stor viden, som Igor V. Rafienko har kommet med på denne nyhedsgruppe
gennem
> årene, alene på grund af sprog.
Jeg er enig i at Igor VR's indlæg somregel er ganske fornuftige, men han
skrev ikke decideret letlæselig norsk i den mail jeg kommenterede (hvilket
udløste min respons).
> Det er for primitivt at forfalde til småracistiske kommentarer, blot fordi
> andre ikke er enige i dine synspunkter, og du ikke har reele argumenter
med
> substans.
Du er for langt ude hvis du vil stemple mit indlæg som racistisk!
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|