Si j'ai une gamme de dire 000080-0007FF
et je veux voir si un char contenant hex est dans cette gamme, comment puis-je le faire?Vérifiez si Char est dans la gamme
Exemple
char t = 0xd790;
if (t is within range of 000080-0007FF) // true
Si j'ai une gamme de dire 000080-0007FF
et je veux voir si un char contenant hex est dans cette gamme, comment puis-je le faire?Vérifiez si Char est dans la gamme
Exemple
char t = 0xd790;
if (t is within range of 000080-0007FF) // true
wchar_t t = 0xd790;
if (t >= 0x80 && t <= 0x7ff) ...
En C++, les caractères sont interchangeables avec des nombres entiers et vous pouvez comparer leurs valeurs directement.
Notez que j'ai utilisé wchar_t
, car le type de données char
ne peut contenir que des valeurs allant jusqu'à 0xFF.
unsigned short t = 0xd790;
if (t >= 0x80 && t <= 0x7ff) ...
Depuis char a une valeur maximale de 0xFF vous ne pouvez pas l'utiliser pour comparer quoi que ce soit avec plus de chiffres hexadécimaux que 2.
Depuis six pans sur un ordinateur est rien de plus qu'un moyen d'imprimer un nombre (comme décimal), vous pouvez également faire votre comparaison avec de simples entiers de base 10 vieux.
if((t >= 128) && (t <= 2047))
{
}
Plus lisible.
Non, je ne suis pas d'accord. Les valeurs hexadécimales sont plus lisibles. Vous pouvez voir les modèles de bits à partir des valeurs hexadécimales. –
La lisibilité dépend entièrement du contexte. Si les configurations de bits sont pertinentes pour le problème en question, l'hexagone est plus lisible (il s'agit vraisemblablement du cas de l'OP). Si les nombres représentent quelque chose comme des comptes normaux d'éléments, la décimale est plus lisible. –
Je l'ai essayé et je reçois avertissement: la comparaison est toujours fausse en raison de la plage limitée de type de données Ok il suffit de lire votre correctif – BobS
Il semble que votre compilateur est configuré pour interpréter 'char' comme un type de données signé (qui va de -128 à 127). Utilisez wchar_t comme j'ai édité ma réponse. –
Existe-t-il un autre moyen que wchar_t? – BobS