|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | ||
|
Senior Member
Iscritto dal: May 2008
Messaggi: 1566
|
[C++]Unire valori di array in variabile unica
Ho un problema. Sto frequentando il corso di Informatica e quest'anno studiamo C++. L esercizio da fare è:
Dato un numero, visualizzare tutti i numeri binari da 1 al numero di cifre inserito. Il codice funziona fino a quando il programma genera numeri a 10 cifre, se provo con 11 non funziona più. Inoltre vorrei unire i valori di un array in una variabile unica, ma non posso sommarle perchè sono in binario..come dispongo i valori uno dopo l'altro???
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021) |
||
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Credo che la tua strada sia un po' cervellotica... bitwise operators?
Ti butto lì il cuore di una soluzione compatta e priva di array: Codice:
printf("%ld", ( nCurrent >> nBit ) % 2);
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 1566
|
Ah...è perchè stiamo facendo esercizi su array...
Puoi spiegarmi cosa fa quel codice nel printf? Gia che ci sono..qual'è l'operatore da inserire in printf e scanf per i double ?
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021) |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Quote:
in pratica: Codice:
int a = 1; int b = 1; int c = a >> b; // c = 0 notare che se shifti una variabile signed (come int) il bit che viene inserito a sinistra è quello del segno della rappresentazione in complemento a due (1 per numeri negativi, 0 per i positivi), tipo: Codice:
int a = -1; int b = 1 int c = a >> b; // c = -1 quindi alla fine se hai un numero puoi stamparne tutte le cifre binarie facendo come dice gimli e incrementando nBit di volta in volta per la seconda domanda: si usa %f Ultima modifica di tuccio` : 10-12-2010 alle 19:45. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:52.




















