Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    62

    [C] c=66+(rand()+time(NULL))%25; perchè genera una consonante in c?

    66+(rand()+time(NULL))%25;

    sapete dirmi perchè quella istruzione genera una consonante casuale in c?

    rand() genera un numero casuale
    time(NULL) l'orario in secondi
    e fin quì non capisco il perchè della loro somma,
    il %25 è perchè le consonanti dell'alfabeto sono 25 (ma non capisco lostesso il perchè di questa operazione,
    il +66 idem, cioè non ne capisco il motivo.....



    P.S. il bello è che quella istruzione l'avevo scritta io ma non ricordo più come funziona

  2. #2
    forse il rand è fatto su un char, forse il 66 voleva intendere il 64 (la a nella tabella ascii) e questo dava una qualsiasi lettera (forse XD)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    In realtà la A (maiuscola) secondo la codifica ASCII è 65, quindi dovrebbe esserci un 65 lì, né 66 né 64.
    Insomma a 65 si somma un numero casuale compreso tra 0 e 24, questo nel tentativo di coprire tutto l'alfabeto ma in realtà dovrebbe essere da 0 a 25, dato che le lettere dell'alfabeto inglese sono 26.
    Per capire perché (rand() + time(NULL)%25 sia un numero compreso tra 0 e 24 basta sapere cosa fa l'operatore %.
    In realtà c'è anche una possibilità di overflow di intero in quella espressione, dato che la somma dei valori restituiti da rand() e time() potrebbe superare il massimo intero rappresentabile.
    every day above ground is a good one

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    62
    vi ringrazio lostesso ma ho già capito come funziona....



    P.S. l'istruzione è giustissima.........c'è 66 e non 65 perchè A non è una consonante.....quindi si può benissimo partire da B (66).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.