/srv/irclogs.ubuntu.com/2015/01/14/#ubuntu-nl.txt

=== zz_DenBeiren is now known as DenBeiren
lordievaderGoede morgen.08:58
TopGearIemand hier met wat verstand van C? Ik zit met een vraag waar ik maar niet uit kan komen.12:26
FermataLaat ens hore .12:29
Fermataeens horen*12:29
TopGearIk ben een programma aan het maken wat uitvogelt of een input een priemgetal is. Ik probeer dit in een int te houden, dus ik heb de maximale en minimale waarden van int gedefinieerd met min en max. Echter werkt dat niet helemaal en komen er hele rare antwoorden uit. Dit is de code: if(num < min || num > max){ etc. num is de input van de gebruiker.12:32
lotuspsychjede jonges van ##programming kunnen mss ook wel helpen12:33
SlingTopGear: kun je de code in een pastebin laten zien?12:35
TopGearSure12:35
TopGearSling: http://pastebin.com/ZpLnPPX912:36
SlingTopGear: je maakt een paar denkfoutjes zie ik12:38
TopGearDat kan, ik ben nog maar net begonnen met C eigenlijk. Waar zitten deze?12:38
Slingten eerste is een int 16-bit, dus -32767 tot 3276712:38
Slingvoor die max/min die jij hebt heb je een 32-bit variabele nodig, dus een 'long'12:38
Slingen in dit geval is een unsigned long int waarschijnlijk het meest geschikte12:39
FermataTen tweede, maar dat is een detail, dient je functie main een int terug te geven.  Dat doe je, maar in je functiesignatuur staat het niet.12:39
Slingmaar het belangrijkste hier is je declareert een type variabele, de scanf() functie vult die waarde12:40
Sling*daarna* check jij of de waarde binnen bounds is, maar dat is eigenlijk te laat12:40
Slingwant op dat moment is de variabele al gevuld12:40
Slingdus checken of de variabele NULL is of 0 zou voldoende moeten zijn12:41
Slingals het niet een van die twee is, dan is het dus een geldige int / long12:41
TopGearOké, hartelijk dank! Ik ga er weer verder mee aan de slag.12:42
TopGearIn ieder geval werkt hij nu weer zoals hij "hoort": alles buiten -32767 en 32767 wordt genegeerd.12:43
Slingen die for loop maar doorlopen tot num/2 is denk ik niet goed, ik denk dat je alles t/m num moet testen12:43
FermataMaar Sling, volgens de gcc documentatie is een int standaard 32 bit lang, tenzij anders geecifieerd in de argumenten12:43
Slingoh nee, /2 is wel goed12:44
SlingFermata: hmm volgens mij zeggen de specs dat het minstens 16 bit moet zijn12:45
Slingniet dat het altijd 32-bit is12:45
Slingmagoed, details12:45
Fermatahttp://crasseux.com/books/ctutorial/Integer-variables.html12:45
Slingin dit geval lijkt me signed vs unsigned een nuttigere kwestie qua datatype kiezen :)12:45
FermataJa, negatieve getallen zijn natuurlijk ook niet priem.12:46
* TopGear slaat zich voor z'n hoofd.12:46
TopGearDe Pfeiffer heeft er nogal ingehakt, blijkt wel. Wat een fout zeg...12:47
FermataMenselijke fouten toch.12:49
Slingbrr C specs lezen is ook niet leuk12:49
Fermata32 bit wordt vooral als standaard beschouwd omdat er anders geen ruimte meer zit tussen char en short.12:56
Fermata8, 16, 32.12:56
Slingint is natuurlijk wel impliciet ook een signed int, dus kun je er maximaal een 16-bit positieve integer in kwijt als het hele ding 32-bit breed is13:00
Slingmaar misschien is het 16-bit in C89 oid13:00
Slingah, "This is one of the points in C that can be confusing at first, but the C standard only specifies a minimum range for integer types that is guaranteed to be supported. int is guaranteed to be able to hold -32767 to 32767, which requires 16 bits. In that case, int, is 2 bytes. However, implementations are free to go beyond that minimum, as you will see that many modern compilers make int 32-bit (which also means 4 bytes pretty ubiquitously)."13:00
SlingTIL13:01
FermataJep.13:01
FermataOok door die scheiding tussen char, short en int die ik neomde.13:01
TopGear0 tot 2147483647 past trouwens mooi in 'n int. Grappig om te zien dat als je 2147483648 intypt, er hele rare getallen uit komen.13:21
Fermatanegatieve?13:23
TopGearJup13:26
TopGearEnter an integer between and including 0 and 2147483647: 2147483648 [enter] -2147483648 is a prime number.13:26
FermataKijk eens naar hoe op binair niveau signing werkt.13:31
FermataDan wordt het heel gauw duidelijk.13:31
Slingiets met een 0 en een 1 :)13:36
Slingen dan vooraan of achteraan, afhankelijk van endianness13:36
jpjacobs2-complement13:39
jpjacobs;)13:39
FermataJeuj, medeprogrammeurs.13:44
jpjacobs*high five*13:54
arieubuntuavond20:02
FermataAvond.20:10
arieubuntuiemand die ook amule gebruikt?20:12
FermataIk niet.20:15
arieubuntuok20:16

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!