Skip to content

Commit bb47681

Browse files
committed
Ajout opérateurs (dont binaires), précision documentation
1 parent 52ba10a commit bb47681

11 files changed

Lines changed: 100 additions & 21 deletions

File tree

.gitignore

100755100644
File mode changed.

Writerside/docs.tree

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,20 @@
88

99
<toc-element topic="home.md"/>
1010
<toc-element topic="base.md">
11-
<toc-element topic="Object.md"/>
12-
1311
<toc-element topic="Integer.md"/>
1412
<toc-element topic="Float.md"/>
1513
<toc-element topic="Char.md"/>
1614

15+
<toc-element topic="Operator.md"/>
16+
<toc-element topic="BitOperator.md"/>
17+
1718
<toc-element topic="Conditional.md"/>
1819

1920
<toc-element topic="Function.md"/>
2021

22+
<toc-element topic="Object.md"/>
23+
24+
2125
<toc-element topic="Import.md"/>
2226
</toc-element>
2327
<toc-element topic="mom.md">
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Opérateur binaire
2+
3+
Les opérateurs de bits permettent d'effectuer des opérations basiques sur les bits.
4+
5+
Ils contiennent les opérateurs ET (`&`), OU (`|`), et OU-EXCLUSIF / XOR (`^`) ansi que les décalages binaires vers la gauche (`<<`) et les décalages binaires vers la droite (`>>`).
6+
7+
Les opérateurs ET, OU et XOR s'utilisent entre deux valeurs binaires (exemple : `5 & 3` donne `1`).
8+
9+
Les décalages binaires s'effectuent sur une seule valeur binaire et grâce à un entier qui représente le nombre de colonnes pour le décalage
10+
(exemple : `5 << 2` donne `20`).
11+
12+
> Décaler les bits de `1` colonne vers la gauche revient à multiplier la valeur binaire par `2`,
13+
> tandis que décaler de `1` colonne vers la droite revient à diviser la valeur binaire par `2`.
14+
{style="note"}

Writerside/topics/base/Conditional.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ Les conditions sont en réalité des entiers. Si l'entier est `0` alors la condi
99
Bien qu'en réalité des entiers, les conditions peuvent s'exprimer à l'aide d'opérateurs conditionnels (`==` [égal], `<` [inférieur à], `>` [supérieur à], `<=` [inférieur ou égal à], `>=` [supérieur ou égal]),
1010
de connecteurs logiques (`&&` [et], `||` [ou]) et de la négation (`!` [non]).
1111

12+
> Les opérateurs conditionnels et les connecteurs logiques nécessitent deux membres pour effectuer une opération.
13+
{style="note"}
14+
1215
La négation se fait sur l'intégralité des conditions et non pas sur les opérateurs conditionnels.
1316
Exemple : `!(1 == 2)`
1417

Writerside/topics/base/Function.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Fonction
22

3-
Les fonctions sont des blocks de code pouvant être appelé n'importe où dans le code (sauf pour les [méthodes](types/Object.md#methode)).
3+
Les fonctions sont des blocks de code pouvant être appelé n'importe où dans le code (sauf pour les [méthodes](Object.md#methode)).
44
Elles ont pour but d'éviter les répétitions et de structurer le code.
55

66
#### Arguments {id="args"}

Writerside/topics/base/Operator.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Operateur
2+
3+
Les opérateurs sont différentes actions permettant de faire des calculs entre deux variables (littérales ou définies).
4+
5+
#### Assignation {id="asign"}
6+
---
7+
L'assignation (notée `=`) est un opérateur permettant de donner une valeur à une variable lors de sa définition ou pour la réassigner.
8+
9+
Exemples :
10+
```base
11+
int x = 0;
12+
x = 5;
13+
```
14+
15+
On assigne d'abord `x` à `0` avant de le réassigner à `5`.
16+
17+
> Il ne faut pas confondre l'assignation (`=`) et l'[opérateur conditionnel d'égalité (`==`)](Conditional.md#op)
18+
{style="warning"}
19+
20+
#### Arithmétique {id="arithm"}
21+
---
22+
Les opérateurs arithmétiques permettent de faire des calculs mathématiques "simple".
23+
24+
Ils contiennent l'addition (`+`), la soustraction (`-`), la multiplication (`*`), la division (`/`),
25+
le reste de la division euclidienne / le modulo (`%`), et l'exposant (`**`).
26+
27+
> La division est entière lorsqu'on la fait avec deux entiers ([`int`](Integer.md) ou [`char`](Char.md)).
28+
> Cependant, celle-ci est décimale si au moins l'un des membres est un [nombre flottant](Float.md).
29+
{style="warning"}
30+
31+
32+
#### Arithmético-assignatoire {id="arithm-asign"}
33+
---
34+
Il existe aussi des opérateurs mélangeant l'opérateur d'assignation (`=`) et les opérateurs arithmétiques.
35+
Ceux-ci sont simplement les opérateurs arithmétiques après lesquelles on fait suivre l'opérateur d'assignation.
36+
37+
On obtient donc les opérateurs suivants : `+=`, `-=`, `*=`, `/=`, `%=` et `**=`.
38+
Ils effectuent les mêmes actions que les opérateurs arithmétiques d'origines, mais avec une syntaxe un peu différente :
39+
```base
40+
int x = 0;
41+
x += 5;
42+
x **= 2;
43+
```
44+
45+
On définit `x` à `0`, ajoute `5` à `x` (`x = 5`), met `x` à la puissance `2` (donc `x = 25`).

Writerside/topics/base/base.md

100755100644
Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
**Base** est un langage de programmation bas niveau créé par des étudiants de l'USMB (Université Savoie Mont-Blanc) afin de développer MispiOS.
66
Il a avant tout un but ludique.
77

8+
Tout le code de **Base** se trouve dans des [fonctions](Function.md) ou des [objets](Object.md).
9+
810
### Mots Clefs
911
---
1012

@@ -46,20 +48,24 @@ Il a avant tout un but ludique.
4648
| `[` & `]` | ouverture et fermeture du sélecteur d'indice d'un itérable |
4749
| `"` | ouverture et fermeture pour un caractère alphanumérique (`char`) ou une chaîne de caractère (`char[]`) |
4850
| `'` | ouverture et fermeture pour un caractère alphanumérique (`char`) |
49-
| `=` | assignation |
50-
| `+` | addition |
51-
| `-` | soustraction |
52-
| `*` | multiplication |
53-
| `/` | division décimale |
54-
| `%` | reste division euclidienne |
55-
| `**` | exposant |
56-
| `+=` | réassignation via addition |
57-
| `-=` | réassignation via soustraction |
58-
| `&` | et (binaire) |
59-
| <code>&#124;</code> | ou (binaire) |
60-
| `^` | ou exclusif (binaire) |
61-
| `<<` | décalage binaire vers la gauche |
62-
| `>>` | décalage binaire vers la droite |
51+
| [`=`](Operator.md#asign) | assignation |
52+
| [`+`](Operator.md#arithm) | addition |
53+
| [`-`](Operator.md#arithm) | soustraction |
54+
| [`*`](Operator.md#arithm) | multiplication |
55+
| [`/`](Operator.md#arithm) | division |
56+
| [`%`](Operator.md#arithm) | reste de la division euclidienne / modulo |
57+
| [`**`](Operator.md#arithm) | exposant |
58+
| [`+=`](Operator.md#arithm-asign) | réassignation via addition |
59+
| [`-=`](Operator.md#arithm-asign) | réassignation via soustraction |
60+
| [`*=`](Operator.md#arithm-asign) | réassignation via multiplication |
61+
| [`/=`](Operator.md#arithm-asign) | réassignation via division |
62+
| [`%=`](Operator.md#arithm-asign) | réassignation via modulo |
63+
| [`**=`](Operator.md#arithm-asign) | réassignation via exposant |
64+
| [`&`](BitOperator.md) | et (binaire) |
65+
| [<code>&#124;</code>](BitOperator.md) | ou (binaire) |
66+
| [`^`](BitOperator.md) | ou exclusif (binaire) |
67+
| [`<<`](BitOperator.md) | décalage binaire vers la gauche |
68+
| [`>>`](BitOperator.md) | décalage binaire vers la droite |
6369
| [`&&`](Conditional.md#op) | et (conditionnel) |
6470
| [<code>&#124;&#124;</code>](Conditional.md#op) | ou (conditionnel) |
6571
| [`!`](Conditional.md#op) | non (conditionnel) |

Writerside/topics/base/types/Char.md

100755100644
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ char a = 102;
99
et
1010
```base
1111
char a = 'B';
12-
```
12+
```
13+
14+
> Il est possible d'utiliser la notation hexadécimale (`0xXX`) pour représenter ces nombres
15+
{style="note"}

Writerside/topics/base/types/Float.md

100755100644
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# Float
22

3-
Le `float` représente l'ensemble de nombres réel.
3+
Le `float` représente l'ensemble de nombres réel.
4+
Les flottants s'écrivent en séparant la partie entière de la partie décimale avec un `.`.

Writerside/topics/base/types/Integer.md

100755100644
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33
L'`integer` (ou `int`) représente l'ensemble des nombres entiers relatifs.
44
Ces nombres peuvent varier de <code>$-2^{31}$</code> à <code>$2^{31} - 1$</code> pour les processeurs 32 bits et de <code>$-2^{63}$</code> à <code>$2^{63} - 1$</code> pour les processeurs 64 bits.
55

6+
> Il est possible d'utiliser la notation hexadécimale (`0xXX`) pour représenter ces nombres
7+
{style="note"}

0 commit comments

Comments
 (0)