AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 [Haxe] Types numériques et Manipulations booléennes

Aller en bas 
2 participants
AuteurMessage
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile


Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes EmptyMer 20 Mai 2015 - 22:16

Bonjour ! Smile

Habitué à la grande multitude de types numériques dans les langages utilisé jusque maintenant, je me sens un peu perdu en arrivant en Haxe avec des Float et des Int, et rien d'autre. triste2

Dans le cas où je me trouve, je vais avoir besoin de plusieurs tableau pouvant stocker des valeurs allant de 0 à 128, je souhaiterais donc utiliser le plus petit volume mémoire possible pour mes variables.

Le problème étant que, je ne trouve même pas la taille mémoire d'un Int basique, j'ai bien vu qu'il y avait des ByteArray dans la librairie haxe.io, mais je ne trouve quasiment rien sur leur utilisation ...

Pourrait-on m'éclairer un peu ? Smile

Pour aider, dans l'idéal, je dois pouvoir stocker dans une matrice tridimensionnelle des objets contenant des structures de données à taille variable, mais contenant tous au moins un identifiant numérique de type de case, pouvant être unique, double ou triple. Une map devant pouvoir faire au moins 128*64*128, il me faut concevoir une structure suffisamment légère.

Merci par avance. Smile

PS : Si on me répond C++, j'y ai pensé, mais, pas pour ce projet là, désolé. Wink


Dernière édition par Chlorodatafile le Mar 16 Juin 2015 - 13:58, édité 1 fois
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: Re: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes EmptyMer 20 Mai 2015 - 22:49

T'as http://api.haxe.org/haxe/io/Bytes.html mais il gère au plus petit que des Int16.

Ce que je ferais c'est ma propre classe custom qui contiens un array de Int32, et j'utiliserais les opérateurs binaires pour les manipuler byte a byte.
Le seul truc 'complexe' a écrire c'est les méthodes get/set:

Code:
get_byte(pos: Int):Int
{
  var shift = (pos % 4) << 3;
  return (array[ pos/4 ] & (0xFF << shift)) >> shift;
}

set_byte(pos: Int, byte: Int):Int
{
  var shift = (pos % 4) << 3;
  array[ pos/4 ] = (array[ pos/4 ] & ~(0xFF << shift)) | (byte << shift);
}

Bon par contre normalement vaux mieux utiliser un int non signé, je sais pas comment haxe gère les "dépassements", mais si tu limites les valeurs de 0 a 128 devrait pas y avoir de soucis.

Edit:

Tout con en fait: http://api.haxe.org/haxe/io/UInt8Array.html

_________________
[Haxe] Types numériques et Manipulations booléennes Runningpotato1[Haxe] Types numériques et Manipulations booléennes TvF6GED [Haxe] Types numériques et Manipulations booléennes MdetltS
Revenir en haut Aller en bas
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile


Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: Re: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes EmptyMer 20 Mai 2015 - 22:58

Je ne vais pas jouer avec les dépassements donc ça devrait aller oui. Smile
Je ne pense pas que le Haxe a une réelle gestion du dépassement, ça doit dépendre du langage d'export surtout. Wink

Je vais essayer de comprendre ton code avant de l'utiliser, mais merci. Very Happy

Edit : Ah bah ouaip, je l'avais pas vu lui, Mea Culpa. sweat Je vais essayer de chercher des informations dessus. Merci. Very Happy

Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile


Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: Re: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes EmptyMar 16 Juin 2015 - 13:57

onilink_ a écrit:
Code:
get_byte(pos: Int):Int
{
  var shift = (pos % 4) << 3;
  return (array[ pos/4 ] & (0xFF << shift)) >> shift;
}

set_byte(pos: Int, byte: Int):Int
{
  var shift = (pos % 4) << 3;
  array[ pos/4 ] = (array[ pos/4 ] & ~(0xFF << shift)) | (byte << shift);
}

(Recyclage de topic ! \o/ )

Les opérations que tu fais là m’intéresse car pour ainsi dire, les opérateurs >>, <<, |, & et ~ sont des opérateurs booléan, mais je n'ai pas trop compris comment ils fonctionnent. x)

Dans une optique de progression avant tout, j'essaye de manipuler à la manière que j'ai pu te voir faire là, plusieurs taille d'encodage de nombre dans un Int. Smile

Par exemple, je veux faire en sorte que sur une séquence de 4 Octet, taille par défaut d'un Int, j'ai du genre ça comme cases :
[] [][][][][][][][][] [][][][][][][][][] [][][][][][][][][] [][][][]

En bref, je cherche à découper de manière dynamique les bits de mon fichier pour l’interpréter tel que je veux, en gardant parfois le byte seul, donc 0 ou 1, ou en le groupant avec 8 autres bit pur l’interpréter en un nombre de 0 à 511. Smile

Donc première question : Suis-je simplement fou ou un abrutis fini ?  awesome
Seconde question : Pourrait-on m'expliquer un peu le fonctionnement de ses opérateurs ? Enfin, dans le cas présent, car j'ai du mal à le visualiser.  sweat
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: Re: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes EmptyMar 16 Juin 2015 - 15:03


_________________
[Haxe] Types numériques et Manipulations booléennes Runningpotato1[Haxe] Types numériques et Manipulations booléennes TvF6GED [Haxe] Types numériques et Manipulations booléennes MdetltS
Revenir en haut Aller en bas
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile


Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: Re: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes EmptyMar 16 Juin 2015 - 17:27

Ooooh ! Tu avais déjà pensé à tout il y a un moment je vois ! Razz Je regarde ça. Very Happy

Merci. Very Happy
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
Contenu sponsorisé





[Haxe] Types numériques et Manipulations booléennes Empty
MessageSujet: Re: [Haxe] Types numériques et Manipulations booléennes   [Haxe] Types numériques et Manipulations booléennes Empty

Revenir en haut Aller en bas
 
[Haxe] Types numériques et Manipulations booléennes
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Tutoriel]Initiation au traitement d'images numériques
» Vos types de jeu favoris
» Brocchinia - Librairie et Framework Haxe Lime OpenFL
» Jeu types combat 2vs2 avec PDV, proposez vos sprite !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: