Pourquoi la valeur max et min est de 255 et -255
Résolu/Fermé
rodel25
Messages postés
115
Date d'inscription
samedi 24 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2014
-
18 mars 2013 à 23:08
Stolous Messages postés 30 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 15 septembre 2014 - 21 mars 2013 à 16:58
Stolous Messages postés 30 Date d'inscription jeudi 14 mars 2013 Statut Membre Dernière intervention 15 septembre 2014 - 21 mars 2013 à 16:58
A voir également:
- 8 bits 255
- Clé windows 8 - Guide
- Winrar 64 bits windows 10 - Télécharger - Compression & Décompression
- 32 bits - Guide
- Mixcraft 8 - Télécharger - Création musicale
- Télécharger windows 7 32 bits usb - Télécharger - Systèmes d'exploitation
3 réponses
NiicoDu42
Messages postés
157
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
20 mars 2017
10
Modifié par NiicoDu42 le 18/03/2013 à 23:28
Modifié par NiicoDu42 le 18/03/2013 à 23:28
Je crois que c'est une question de mémoire dédié au type de variable.
int aura une plus faible mémoire qu'un float ...
Donc si tu veux que des nombres positifs, il te suffit de rajouter "unsigned" devant le type de variable
ex :
unsigned int var1;
les possibilités de nombre partent alors de zero jusqu'à 510 dans ton cas (255 x 2)(Tu as remarqué qu'il y avait la même étendu entre 0 -> 510 et -255 -> +255 )
En espérant t'avoir aidé :)
int aura une plus faible mémoire qu'un float ...
Donc si tu veux que des nombres positifs, il te suffit de rajouter "unsigned" devant le type de variable
ex :
unsigned int var1;
les possibilités de nombre partent alors de zero jusqu'à 510 dans ton cas (255 x 2)(Tu as remarqué qu'il y avait la même étendu entre 0 -> 510 et -255 -> +255 )
En espérant t'avoir aidé :)
rodel25
Messages postés
115
Date d'inscription
samedi 24 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2014
25
19 mars 2013 à 13:09
19 mars 2013 à 13:09
Merci pour vos réponse, donc en gros sa dépend de la variable utilisée ?
Car j'ai une petite revue de projet et voici mon (tout) petit programme teste sous Arduino :
#include <OrangutanMotors.h>
void setup()
{
}
void loop()
{
int mot1 = 255
int mot2 = 255
set_motors(mot1, mot2)
}
Et je ne sais répondre a la question : pourquoi la valeur max est de 255 et min -255.
Y a t il un lien avec la précision du robot qui est de 8 bits ? c'est a dire 1111 1111 = 255 ?
Car j'ai une petite revue de projet et voici mon (tout) petit programme teste sous Arduino :
#include <OrangutanMotors.h>
void setup()
{
}
void loop()
{
int mot1 = 255
int mot2 = 255
set_motors(mot1, mot2)
}
Et je ne sais répondre a la question : pourquoi la valeur max est de 255 et min -255.
Y a t il un lien avec la précision du robot qui est de 8 bits ? c'est a dire 1111 1111 = 255 ?
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 19/03/2013 à 15:25
Modifié par [Dal] le 19/03/2013 à 15:25
Salut rodel25,
La réponse simple, c'est parce que c'est fixé ainsi par la documentation de set_motors() :
https://www.pololu.com/docs/0J18/7
Speed is a value between -255 and +255. The sign of speed determines the direction of the motor and the magnitude determines the speed. A speed of 0 results in full brake (full coast on the Orangutan X2) while a speed of 255 or -255 results in maximum speed forward or backward. If a speed greater than 255 is supplied, the motor speed will be set to 255. If a speed less than -255 is supplied, the motor speed will be set to -255.
Sinon, le type int peut accueillir des valeurs maximales et minimales bien supérieures. Les limites effectives dépendent du type de matériel arduino : https://www.arduino.cc/reference/en/language/variables/data-types/int/
Autrement de 0 à 255, tu as 256 positions possibles pour déterminer la vitesse en marche avant (ou arrière). C'est effectivement égal à 2 puissance 8, ou un octet (donc 8 bits).
Dal
La réponse simple, c'est parce que c'est fixé ainsi par la documentation de set_motors() :
https://www.pololu.com/docs/0J18/7
Speed is a value between -255 and +255. The sign of speed determines the direction of the motor and the magnitude determines the speed. A speed of 0 results in full brake (full coast on the Orangutan X2) while a speed of 255 or -255 results in maximum speed forward or backward. If a speed greater than 255 is supplied, the motor speed will be set to 255. If a speed less than -255 is supplied, the motor speed will be set to -255.
Sinon, le type int peut accueillir des valeurs maximales et minimales bien supérieures. Les limites effectives dépendent du type de matériel arduino : https://www.arduino.cc/reference/en/language/variables/data-types/int/
Autrement de 0 à 255, tu as 256 positions possibles pour déterminer la vitesse en marche avant (ou arrière). C'est effectivement égal à 2 puissance 8, ou un octet (donc 8 bits).
Dal
rodel25
Messages postés
115
Date d'inscription
samedi 24 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2014
25
Modifié par rodel25 le 19/03/2013 à 18:07
Modifié par rodel25 le 19/03/2013 à 18:07
merci beaucoup pour cette explication claire et précise :)
Stolous
Messages postés
30
Date d'inscription
jeudi 14 mars 2013
Statut
Membre
Dernière intervention
15 septembre 2014
4
21 mars 2013 à 16:32
21 mars 2013 à 16:32
C'est en fair juste une question d'espace dans la mémoire,
car le nombre maximal que on peut stocker dans 4 octets est 255.
car le nombre maximal que on peut stocker dans 4 octets est 255.
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
21 mars 2013 à 16:47
21 mars 2013 à 16:47
Salut Stolus,
Un octet est un nombre composé de 8 bits, qui peut avoir 256 valeurs différentes (donc une valeur de 0 à 255) : de 00000000 à 11111111, 2 puissance 8, car chaque bit peut avoir deux valeurs uniquement.
Avec 4 octets, tu fais de de 00000000000000000000000000000000 à 11111111111111111111111111111111, et peux stocker 2 puissance 32 valeurs différentes, donc 4294967296. Soit de 0 à 4294967295.
De quoi parles-tu ?
Dal
Un octet est un nombre composé de 8 bits, qui peut avoir 256 valeurs différentes (donc une valeur de 0 à 255) : de 00000000 à 11111111, 2 puissance 8, car chaque bit peut avoir deux valeurs uniquement.
Avec 4 octets, tu fais de de 00000000000000000000000000000000 à 11111111111111111111111111111111, et peux stocker 2 puissance 32 valeurs différentes, donc 4294967296. Soit de 0 à 4294967295.
De quoi parles-tu ?
Dal
Stolous
Messages postés
30
Date d'inscription
jeudi 14 mars 2013
Statut
Membre
Dernière intervention
15 septembre 2014
4
21 mars 2013 à 16:58
21 mars 2013 à 16:58
désolé, je me suis trompé avec autre chose, c'est bien 1 octet, soit 8 bits, soit en binaire entre 00000000 et 11111111.
Donc merci [Dal]!
Donc merci [Dal]!
Modifié par fiddy le 19/03/2013 à 08:10
Etvpuis en signed ce n'est pas pas -255 255 mais -256 255.
D'ailleurs dans ton exemple il n'y a pas la même "étendu".