Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Une fois que le téléversement est terminé, le CrcDuino redémarre et commence ensuite à exécuter le code. Il roulera ce qui est écrit dans la partie void setup() du programme .ino file une fois, pour exécuter après ce qui est écrit dans la partie void loop() en boucle.

Primitives

Computers can natively only perform operations on some data types. These are integer and floating point (float) numbers. Those are called primitives. Integers are further divided in two Par défaut, les ordinateurs peuvent seulement effectuer des opérations sur certains types de données. Ces types sont les nombres entiers (integer) et les nombres à virgule (float). Ces opérations s’appellent primitives. Les entiers se divisent encore en deux classes, signed and unsigned. Signed numbers can represent negative as well as positive integers (signed = with a sign, get it?), while unsigned numbers can’t.

Here is a summary chart:

...

Primitive

...

Les nombres signed peuvent représenter des entiers positifs ou négatifs (signed = avec un signe, la pognez-vous?), alors que les entiers unsigned en sont incapables.

Voici un tableau sommaire:

Primitive

Peut représenter des nombres décimaux (ex: 0.1)?

Can it represent negative numbers (e.g. Peut représenter des nombres négatifs (ex: -2)?

Floats

YesOuiYes

Oui

Signed integers

NoNon

YesOui

Unsigned integers

NoNon

No

While it could be tempting to always use floats, you should always strive to use the type that provides the least while providing what you need. By removing some possibilities, you can avoid small mistakes because of inattention. Computers are also generally faster with integers than with floats.

Precision and size

Computer, like humans, have a limited quantity of information they can hold in memory. Thus, each number has a finite number of space dedicated to it. You should always choose the type of a value depending on the range of values it can take. For example, using a variable that can hold values up to a billion would waste space if dedicated to a value that is at most a hundred.

For floats, you have two options:

  • float which can hold values from 10-38 to 1038 with a precision of around 7 digits;

  • double which can hold values from 10-308 to 10308 with a precision of around 16 digits.

...

Non

Il pourrait être tentant d’utiliser des floats comme il semble qu’il peuvent tout faire. Vous devriez cependant toujours viser à utiliser le type de données qui vous permet d’en faire le moins tout en vous permettant d’en faire assez.. En enlevant certaines possibilités, vous pouvez éviter des petites erreurs d’inattention. Un ordinateur est aussi généralement plus rapide avec des integers qu’avec des floats.

Précision et taille

Les ordinateurs, tout comme les humains, ont une quantité maximale d’information qu’ils peuvent retenir en mémoire. Ainsi, chaque nombre possède un espace de mémoire fini qui lui est dédié. Vous devriez toujours choisir le type d’une variable selon les valeurs qu’elle peut prendre. Par exemple, choisir une variable qui peut contenir des nombres dans l'échelle des milliards serait du gaspillage d’espace de mémoire si le nombre prévu ne dépassera pas quelques centaines.

Pour les floats, vous avez deux options:

  • float, qui peut contenir des valeurs de 10-38 jusqu'à 1038 avec une précision d’à peu près 7 chiffres;

  • double, qui peut contenir des valeurs de 10-308 jusqu'à 10308 avec une précision d’à peu près 16 chiffres.

Pour les integers, vous avez une plus grande variété de choix. Comme structure générale, vous pouvez utiliser int<size>_t pour spécifier un type, où <size> peut être 8, 16, 32, 64. For Pour une version unsigned versions, you can prefix a u to the type. The size indicates the acceptable values taken by a type. Specifically, int<size>_tcan take from , vous pouvez ajouter un u en préfixe au type utilisé. La taille (size) indique les valeurs supportées pour un type. Spécifiquement, int<size>_t peut prendre des valeurs de -2(size - 1) to à 2(size - 1) - 1 and , et uint<size>_t can take from 0 to peut aller de 0 à 2size - 1.

In a more understandable formatDans un format plus compréhensible:

Type

Also known as in Arduino

Negatives?

Size Aussi connu sous le nom de (pour un Arduino)

Négatifs?

Taille(bit)

Minimum

Maximum

uint8_t

unsigned char or ou byte

NoNon

8

0

28 - 1 (255)

int8_t

char

YesOui

8

-27 (-128)

27 - 1 (127)

uint16_t

unsigned int or ou word

NoNon

16

0

216 - 1 (65 535)

int16_t

int

YesOui

16

-215 (-32 768)

215 - 1 (32 767)

uint32_t

unsigned long

NoNon

32

0

232 - 1 (4 294 967 295)

int32_t

long

YesOui

32

-231 (-2 147 483 648)

231 - 1 (2 147 483 647)

uint64_t

unsigned long long

NoNon

64

0

264 - 1 (3.68935 × 1019)

int64_t

long long

YesOui

64

-263 (-9.22337 × 1018)

263 - 1 (9.22337 × 1018)

Info

When starting, you can use the “Also known as in Arduino” nomenclature, but you should try to understand and use the official integer nomenclature.

In the official nomenclature, the size of every int type is explicitely defined and the same on every platform, whereas an “int” might be 16bit on a micro-controller model and 32bit on another one. Using this nomenclature is a nice habit since it makes your code more portable; meaning that it will have the same execution characteristic on different platformsLorsque vous débutez, vous pouvez utiliser la nomenclature “Aussi connu sous le nom de (pour un Arduino)”, mais vous devriez essayer de comprendre et d’utiliser la nomenclature officielle pour les integers.

Dans la nomenclature officielle, la taille de chaque type d’int est définie explicitement et est la même pour toute plateforme, alors qu’un “int” pourrait être 16bit sur un modèle de microcontrôleur particulier et 32bit sur un autre. L’utilisation de cette nomenclature est une bonne habitude qui rendra votre code plus portatif pour s’exécuter similairement d’une plateforme à l’autre.

Articles liés

Filter by label (Content by label)
sorttitle
excerptTyperich content
cqllabel = "ar-guide_demarrage"