Ne VB6 soutien unsigned types de données?
Afin de résoudre un pari avec l'un de mes collègues, je voudrais savoir si VB6 supporte nativement non signés types de données.
Je pense que la réponse sera "non", mais je n'arrive pas à trouver toute la documentation officielle confirmant que. Un simple lien vers un document Microsoft serait une réponse acceptable; un historique de la justification des raisons pour lesquelles ces types ne sont pas pris en charge serait un bonus supplémentaire.
- Je sais que VBA ne prend pas en charge quand vous le faites COM interop: unsigned types ne font pas partie des types OLE. Je ne suis pas sûr de VB6.
- Je soupçonne que les nombres non signés sont pas pris en charge dans visual basic pour la même raison qu'ils sont pris en charge dans la plupart des autres langues: ils sont rarement nécessaires.
- La seule prise en charge entier non signé dans l'Automatisation est d'Octets (unsigned char)
Vous devez vous connecter pour publier un commentaire.
Que Kris a dit, ils ne sont pas pris en charge, sauf pour les
Byte
type de données, qui est seulement disponible comme non signé, comme on peut le voir dans cette liste de types de données: Résumé Des Types De DonnéesLa page mentionne VBA, mais il mentionne également Visual Studio 6.0, et la prise en charge des types de données ont été les mêmes.
Je ne pense pas que vous trouverez de la documentation officielle en disant pourquoi ils n'ont pas d'ajouter unsigned types de données puisque c'est généralement la mauvaise voie en ce qu'elle n'était probablement pas un cas de "pourquoi ne pas nous prendre en charge cette" autant que "serait-il la peine l'effort supplémentaire à ajouter".
Édité mentionner l'exception de la
Byte
type de données comme l'a souligné MarkJ.Byte
qui est un unsigned 1 octet entier, comme le Cchar
. VB6 a égalementInteger
,Long
etCurrency
qui sont signé sur 2 octets, 4 octets (à l'échelle) les entiers de 8 octets, respectivement.Le seul type entier non signé est l'Octet.
Ne sont pas pris en charge pour VB6 ,il a été ajouté comme expliqué à cette lien dans VB.NET.
Pas pris en charge.
Quelques bonnes infos concernant la simulation d'eux: http://www.vbforums.com/showthread.php?t=578430
Il y a la possibilité de passer de valeurs en hexadécimal en un type qui serait stocké non signés, tant que le bit de signe n'est pas une partie de la valeur. ainsi, par exemple,
noter que ces 16bit vals sont passés dans un type Long, qui est 32bits. si le bit de signe est intacte. mais si vous avez besoin d'32bits il a été suggéré d'utiliser le type Double, quelqu'un a mentionné avant.
Quant à la nécessité pour les types en général, un Unsigned Long serait un 32 bits binaires, par rapport à un Octet qui est seulement 8bits. Essayez d'écrire 24bit registres via un port série, avec l'Octet types.. 🙂 de mon point de vue est que dans VBA, le bit de signe est assis comme une écharde dans la façon de peu logique..
en tout cas, j'espère que cela aide quelqu'un.
acclamations,
Norwood, MA