Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-12-2010, 16:53   #1
L4ky
Senior Member
 
L'Avatar di L4ky
 
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???

Spoiler:
Codice:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string> 

int main()
{
    int x, conta, num, bnum=0, nmax=0, copiax=0;
    printf("\t\t\tNUMERI IN BINARIO\n");
    printf("Inserisci la quantità di cifre in binario da visualizzare: ");
    scanf("%d", &x);
    copiax=x;
    x=2;
    for(int p=1; p < copiax; p++){x *= 2;}
    //printf("\n\nAHAHAH NUMERO MAX: %d\n\n", x);
    int bin[x+1][20];
    int dim[x+1];
    int def[x+1][2];
    for(int i=0; i < x; i++){for(int j=0; j < 50; j++){bin[i][j] = 0;}} // AZZERA MATRICE
    for(int i=0; i < x; i++){dim[i] = 1;}
    for(int i=0; i < x; i++){for(int j=0; j < 2; j++){def[i][j] = 0;}} // AZZERA MATRICE DEFINITIVA
    
    for(num=1; num <= x+1; num++){
        bnum=num;
    for(conta = 0; conta < 50; conta++){
        bin[num][conta] = bnum%2;
        if(bnum == 1){bin[num][conta++] = 1; conta = 50;}else{
        bnum = bnum / 2;}
        dim[num]++;
        }
        conta=0;
    }
    printf("\n");
    for(int i=1; i < x; i++){for(int j=dim[i]-1; j > 0; j--){printf("%d", bin[i][j-1]);}printf("\n");} 
    
    
    //for(int i=0; i < x; i++){printf("%d ", dim[i]);} // DEBUG DIMENSIONI
    //for(int i=0; i < x; i++){for(int j=0; j < 100; j++){printf("%d", bin[i][j]);}} // DEBUG MATRICE
    system("PAUSE");
    return 0;
}
__________________
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)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2010, 22:16   #2
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
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...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 14:51   #3
L4ky
Senior Member
 
L'Avatar di L4ky
 
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)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 19:43   #4
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
Quote:
Originariamente inviato da L4ky Guarda i messaggi
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 ?
>> è l'operatore di shift a destra

in pratica:

Codice:
int a = 1;
int b = 1;
int c = a >> b; // c = 0
prende la rappresentazione binaria di a (in questo caso, se hai interi di 4 byte, 32 bit così fatti: 000000.....001) e shifta a destra di b posizioni (in questo caso b è 1 e c diventa 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
perché -1 ha rappresentazione 111111111...111 in complemento a due e qualsiasi shift è ininfluente, perché vengono sempre inseriti degli uno a sinistra

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.
tuccio` è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
Venezuela, altro che petrolio: il tesoro...
EcoFlow DELTA Pro Ultra X: potenza e rap...
SK hynix: un nuovo impianto per produrre...
Facebook, cresce il furto di password co...
Tesla lancia la nuova Model Y con 7 post...
NVIDIA smentisce: nessun pagamento antic...
Il prototipo del razzo spaziale riutiliz...
Grok e i deepfake a sfondo sessuale, pre...
Airbus costruirà altri 340 satell...
Recuperare oro dai rifiuti elettronici i...
L'FCC approva l'espansione della costell...
HBO Max è disponibile da oggi in ...
Biwin al CES 2026: tra memorie e SSD com...
Aperte le iscrizioni per il Nimbus Innov...
Licenziati e senza stipendio: il caso Ro...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v