Kezdőlap › Fórumok › Programozás › C programozás 2
- This topic has 75 hozzászólás, 10 résztvevő, and was last updated 19 years, 11 months telt el by
kisbetu.
-
SzerzőBejegyzés
-
2005-06-14-15:59 #2017267
ltoa(n, buffer + 4, 10);
Erre mért irja nekem az eclipse hogy, undefined reference to `ltoa’?
#include <-- ez be van irva abba a filebe amibe a fügvényt használni akarom.
2005-06-14-16:36 #2017268Akkor sprintf(ez a legkézenfekvõbb), vagy _ltoa
int sprintf(char *str, const char *format, …);
a formátum string és a többi paraméter pont olyan, mint a sima printf-nél, csak itt stringbe írja, nem stdoutra.2005-06-14-17:29 #2017269Ha integert szeretnél átalakítani, akkor inkább az itoa üggvényt javaslom, mert az erre való. Az ltoa longot alakít át.
Ha pedig nincs benne az stdlib.h fájlban, akkor az azért lehet, mert ez a függvény nem része az ANSI-C szabványnak (asszem).2005-06-14-17:44 #2017270„Ha integert szeretnél átalakítani, akkor inkább az itoa üggvényt javaslom, mert az erre való. Az ltoa longot alakít át.”
Ami már általában ugyanaz, nem mintha probléma lenne, hogy lehetõség van nagyobb szám megadására. Az már gond lenne, ha fordítva lenne…A legtisztább mégis az sprintf: mindenhol van és bármit átalakít, bár bizonyára lassabb.
2005-06-14-18:41 #2017271sprintf-el irtam meg a kódot, ki még nem próbáltam de jó egyzerû nem hiszem hogy elvi hiba ennebenne esetleg elgépelés.
gcc -vel fordítva az int és a long int is 4 bájtos, legalább is nálam.
De próbáld ki te is mellékelek egy progit ami erre jó.Code:int main()
{
printf(„char : %2zd bájtn”, sizeof(char));
printf(„short int : %2zd bájtn”, sizeof(short int));
printf(„int : %2zd bájtn”, sizeof(int));
printf(„long int : %2zd bájtn”, sizeof(long int));
printf(„long long int : %2zd bájtn”, sizeof(long long int));
}ezt lefordítod megmutatja mi menyi.
2005-06-14-18:58 #2017272Ja és egy kérdésem is volna. Vannak általánosan bevett módszerek egyes probléma megoldására csak én nem tudom ezeket, hol lehet utánna nézni ezeknek? Nem akarok állandóan ide rohangálni mert így a legegyszerûbb dolog megírása is eltert 2 hétig.
2005-06-15-06:48 #2017273Most is van egy konkrét problémám mégpedig az hogy 1 bájt legutolsó bitjét hogy módosítsam úgy hogy a többi bit ne változzon ?
Hogy érthetõbb legyen a probléma ezt kéne elérni az utolsó bittel de csak is az utolsóval:
A | B | Eredmény
1 | 1 | 1
0 | 1 | 1
1 | 0 | 0
0 | 0 | 0
A oszlóp és EREDM2005-06-15-07:23 #2017274A little-endian big-endian számábrázolásbeli külömbségérõl tudok én is, de ez itt nem fog bezavarni.
[align=right][snapback]138431[/snapback][/align]tudom, azt nem is azért írtam, csak arra, hogy hogy néz ki egy szám a memóriában
2005-06-15-07:30 #2017275Vérszagra gyûl az éji vad… 🙂
;P
„
„az,hogy egy int típus hány bájtos az a cputól,fordítótól,oprendszertõl függ!!”
Kizárólag a fordítótól:”na ja csak esetleg nem fog futni a target cpu-n 🙂
„nézhet ki így, tök mindegy, hogy milyen vas, vagy os van alatta (32 bites szegmenssel):”
tehát mégsem mind1…..
„na ezzel valóban az a helyzet, hogy 16 bites processzoron nem fut, bár attól, lehetne az int/longint 32 bites, de sokkal nehezebben lehetne bánni vele, mivel nincs általános célú 32 bites regiszter”
hoppá tényleg nem fut…. tehát megint csak nem mind1
„- az int deffiniciót az általános regiszterek méretéhez igazították”
tehát cpu függõ… ugye az os ezen nem tud változtatni…„de könyörgöm mutass már egy 16 bites processzorral ellátott pc-t? a 386-os processzor már 32 bites…”
nem csak a pckben van processzor amit programozni lehet….
„a gcc-ben pedig az int mindig 32 bites és azonos méretû, mint a long int, amíg a short int 16 bites, tök mindegy milyen rendszer alatt…”
persze bizonyos arch alatt a gcc-nek is van olyan kapcsolója amivel választani lehet hogy int 16 vagy 32 bites legyen (de alap a 32)…
„de, ha más fordítóval is ugyanazt a kódot kell elõállítani a short intet, vagy a long intet kell használni. az elõbbi mindig 16 bites, az utóbbi mindig 32 bites (ha jól tudom)”
sajnos nem pl embedded vc INT32 ami mindig 32 bit….
„Nos, most már belátható, hogy a cpu-tól csak praktikussági okok miatt függhet(ne), „
az bõven elég!„De a lényeg az, hogy a fordító olyan gépikódot generál, amilyet akar. „
ez biztos 🙂
„(Legfeljebb erõforrás pazarló lesz.)”
vagy nem fog futni 🙂 pl generálhat a fordító egy risc procira gépi kódot aztán futtasd x86-on 🙂
2005-06-15-08:16 #2017276Most is van egy konkrét problémám mégpedig az hogy 1 bájt legutolsó bitjét hogy módosítsam úgy hogy a többi bit ne változzon ?
[align=right][snapback]138485[/snapback][/align] -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz