trafi

Transducteurs finis
git clone git://git.asteride.xyz/trafi.git
Journaux | Fichiers | Références

commit 6baac28c78853289d68d46dd623eebd971b87515
parent d9fa1eba8110f2d8046113741620ab8dc9095720
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date:   Tue, 14 Apr 2026 15:50:36 -0400

Inversere le sens du bit de poids faible

Diffstat:
Mitfd.c | 8++++----
Mitfd.h | 2+-
Mmishka.c | 2+-
3 fichiers modifiés, 6 insertions(+), 6 suppressions(-)

diff --git a/itfd.c b/itfd.c @@ -113,7 +113,7 @@ segmenter(struct itfd *itfd, uint8_t *cc, size_t lngrcc, uint16_t *symbs) nsymbs = 0; while (cc < fin) { - symb = (*cc << 1) | 0x01; + symb = (*cc << 1) | 0x00; prch = cc + 1; for (i = 0; cc < fin; cc++) { @@ -124,8 +124,8 @@ segmenter(struct itfd *itfd, uint8_t *cc, size_t lngrcc, uint16_t *symbs) /* Vérifier. */ if (orig & 0x01 || orig >> 0x01 != i) { - cc = prch; - break; + cc = prch; + break; } i = pi; @@ -134,7 +134,7 @@ segmenter(struct itfd *itfd, uint8_t *cc, size_t lngrcc, uint16_t *symbs) if (base & 0x01) { i = base >> 1; orig = segm[i][1]; - symb = (orig >> 1) << 1; + symb = ((orig >> 1) << 1) | 0x01; prch = cc + 1; } } diff --git a/itfd.h b/itfd.h @@ -35,7 +35,7 @@ int itfd_fermer(struct itfd *itfd); * Le tampon symbs doit être au moins aussi grand que lngrcc. Puisqu’un * symbole compte pour au moins un caractère, il ne peut jamais y avoir plus de * lngrcc symboles dans symbs. Aussi, les symboles contenus dans symbs ont un - * drapeau dans leur bit de poids faible. S’il n’est pas brandi, il s’agit d’un + * drapeau dans leur bit de poids faible. S’il est brandi, il s’agit d’un * symbole reconnu par le segmenteur et symbs[i] >> 1 donne le symbole; sinon, * c’est qu’il en est absent et symbs[i] >> 1 donne le caractère non reconnu. * Renvoie le nombre de symboles placés dans symbs. */ diff --git a/mishka.c b/mishka.c @@ -29,7 +29,7 @@ main(int argc, char **argv) nsymbs = segmenter(itfd, (uint8_t *)argv[1], lngr, symbs); for (i = 0; i < nsymbs; i++) { - if (symbs[i] & 0x01) { + if (!(symbs[i] & 0x01)) { printf("*%c (%d)\n", symbs[i] >> 1, symbs[i] >> 1); } else { fwrite(itfd->symbs + 1 + (symbs[i] >> 1),