Divisione per dueIn matematica, la divisione per due o a metà è stata considerata un'operazione diversa dalla moltiplicazione o divisione per altri numeri fino dai tempi degli antichi egizi, che utilizzavano una tecnica di moltiplicazione che adottava la divisione per due come uno degli elementi fondamentali[1]. Alcuni matematici del tardo sedicesimo secolo continuarono a considerarla come un'operazione distinta dalle altre[2][3], e spesso viene ancora trattata così nella programmazione moderna[4]. La divisione per due è un'operazione semplice da effettuare nell'aritmetica decimale, nel sistema numerico binario usato nella programmazione informatica e in altri sistemi di numerazione basati sui numeri pari. Sistema numerico binarioNel sistema numerico binario la divisione per due può essere eseguita come un'operazione che sposta il numero (bit shift) di un posto verso destra. Si tratta di un caso di ottimizzazione per riduzione di forza. Per esempio, spostando verso destra di un posto il numero binario 1101001 (che rappresenta il numero decimale 105), si ottiene 110100 (il numero decimale 52): il bit di ordine minore, 1, viene rimosso. Analogamente la divisione per ogni potenza di due 2k può essere eseguita attraverso lo spostamento verso destra di k posizioni. Poiché gli spostamenti di numero sono operazioni molto più veloci delle divisioni, la sostituzione di una divisione con una spostamento può costituire un aspetto importante dell'ottimizzazione. Nell'interesse della portabilità e della leggibilità, tuttavia, è generalmente più opportuno scrivere i programmi usando l'operazione della divisione, confidando nella capacità del compilatore di eseguire le opportune sostituzioni[5]. Questo, tuttavia, non è sempre vero nel caso della divisione dei numeri relativi secondo la rappresentazione binaria. In questo caso lo spostamento verso destra di 1 bit divide sempre per due con un arrotondamento per difetto. In alcuni linguaggi, comunque, la divisione di numeri relativi binari arrotonda verso lo 0 (il che significa un arrotondamento per eccesso se il risultato è negativo). in linguaggio Java, per esempio, Virgola mobileNell'aritmetica binaria in virgola mobile, la divisione per due può essere eseguita diminuendo il valore dell'esponente di uno - a condizione che il risultato non rientri nei numeri denormalizzati. Molti linguaggi di programmazione hanno funzioni che possono essere usate per dividere per due un numero a virgola mobile. Per esempio il Java impiega la funzione DecimaliIl seguente algoritmo vale per i numeri decimali, tuttavia può essere utilizzato come modello per la costruzione di un algoritmo che divida per due qualunque numero N con valore di base pari.
Esempio: 1738 / 2 = ? Scrivere 01738 e calcolare il risultato:
Risultato: 0869. Dall'esempio si ricava che 0 è un numero pari. Se l'ultima cifra di un numero N è dispari occorre aggiungere 0,5 al risultato. Note
Voci correlate
|
Portal di Ensiklopedia Dunia