Avatar billede hclarsen Nybegynder
26. august 2009 - 13:46 Der er 4 kommentarer og
2 løsninger

ASCII-værdier og indtastninger

Hej alle

Jeg har to spørgsmål:


1) Jeg husker fra tidligere, at "Enter" har ASCII-værdien 13. Online har jeg fundet en ASCII-tabel, hvor #13 er "Carriage return", så her er der ingen alarm.

I min C-bog er #13 i ASCII-tabellen en node (en musik-node).

Hvorfor denne uoverensstemmelse? Generelt synes jeg der er uoverensstemmelser for de første 32 karakterer mellem de to tabeller.


2) Se følgende kode

int i;
i = 3/2;
printf("%d", i);

OUTPUT: 1

Hvad er ræsonnementet bag, at output er 1, og ikke 2?
Avatar billede foo85 Novice
26. august 2009 - 14:04 #1
1)
Den overlader jeg til en anden :)

2)
Det du laver er heltalsdivision i dit lille regnestykke. Du skriver 3 / 2 - altså hvor mange gange går 2 op i 3. Da du har defineret i til at være en int, vil C lave heltalsdivision, og det betyder at der altid rundes ned til første heltal.

Hvis du skriver double i = 3/2; istedet for vil din print printe 1.5 (der skal du bruge printf("%f",i);)
Avatar billede foo85 Novice
26. august 2009 - 14:16 #2
kommer lige med hvad jeg tror 1) skyldes...

Jeg vil umiddelbart gætte på det er noget med karakterenkodning som spiller dig et pus... Hvis du bare bruger værdi 13, så bør det altid være enter, medmindre programmet udføres på en platform med et specielt karakterenkodning...
Avatar billede bitmatic Nybegynder
26. august 2009 - 15:36 #3
1) Noden er strengt taget ikke en ASCII-tekst. Det skyldes at værdien 13 modsvarer en node i det codepage du bruger på din computer. Værdien 14 er i øvrigt en dobbelt-node...

Se mere på http://en.wikipedia.org/wiki/Code_page_437
Avatar billede hclarsen Nybegynder
26. august 2009 - 17:34 #4
Ok, læg et svar begge to.

Tak.
Avatar billede foo85 Novice
26. august 2009 - 18:16 #5
ok :)
Avatar billede bitmatic Nybegynder
27. august 2009 - 08:23 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester