Les origines du SIGNÉ et UNSIGNED

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Mars 26th, 2010, 3:55 pm

Désignation positifs et négatifs à part, quels sont les ordinateurs originaux raisons commencé à utiliser SIGNÉ et UNSIGNED les types de données theyre moyen mis en œuvre aujourd'hui?

Il semble étrange que tout ce qui semble fonctionner comme un commutateur indique le type à être soit totalement positif, ou à moitié-moitié. Im having trouble pense à une bonne raison à mon compte, et Im un bout d'une perte sur ce que je doit être recherchée.
Strong with this one, the sudo is.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 26th, 2010, 3:55 pm

  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 26th, 2010, 4:42 pm

Il faudrait que je re-vérifier le sens exact, mais disons que vous avez un nombre 8 bits qui n'est pas signé:

2 ^ 8 = 256 valeurs (0 à 255)

Maintenant, pour une valeur signée, vous pouvez toujours que de 256 valeurs réparties entre les points positifs et les négatifs:

2 ^ 8 = 256 valeurs (-128 à 127)

Ainsi, la base principale Je pense que pour avoir une valeur non signée est si vous ne voulez pas utiliser un nombre plus élevé bits mais qui veulent obtenir la valeur maximale possible si vous savez que vous n'allez pas utiliser des valeurs négatives. Par exemple, un nombre 64 bits qui n'est pas signé:

2 ^ 64 = 8.446.744.073.709.551.616 valeurs (de 0 à 8.446.744.073.709.551.615)

et qui est signé:

2 ^ 64 = 8.446.744.073.709.551.616 valeurs (-9,223,372,036,854,775,808 à 9,223,372,036,854,775,807)

Ainsi, en utilisant un nombre non signés ont ce nombre beaucoup plus postive de jouer avec: 9.223.372.036.854.775.808 sans avoir à prendre plus de mémoire. Si vous vouliez avoir la valeur a signé:

10.000.000.000.000.000.000

Vous seriez contraint d'utiliser un numéro 128 bits qui utilise la mémoire de beaucoup plus (et probablement même pas possible sur l'architecture actuelle). Vous ne savez pas si cela répond à votre question ou pas, mais je crois que c'est la pensée derrière tout cela. Corrigez-moi si je me trompe.

Edit **
En ce qui concerne l'utilisation des nombres de 128 bits j'ai trouvé ceci:

Quote:
Uniquement disponible sous forme non-standard du compilateur C extension spécifique


http://en.wikipedia.org/wiki/Integer_%2 ... science%29
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Mars 26th, 2010, 5:15 pm

Il ne précise la façon dont SIGNÉ et UNSIGNED fonctionner assez bien. Bien Im Im peur encore à se demander pourquoi son ensemble positif ou Hanf et demi, au lieu de tous positifs ou tous négatifs.

Plus j'y pense, plus elle semble susceptible d'avoir besoin de plus courtes distances entre les réponses positives et nombres négatifs que celle qu'il aurait besoin de plus grandes étendues de tous les nombres négatifs. Je pense que ce serait une bonne raison d'aller tous positifs ou à moitié-moitié, comme il est.

--

Maintenant Im un peu curieux comme bits quantiques avec leur "on", "off", et "à la fois sur et en dehors" Etats pourraient bien signé et UNSIGNED, ou en mathématiques binaires dans son ensemble pour cette question. :scratchhead:

1, 2, 4, 8, 16...avec des interrupteurs pour les deux semble assez simple. Quel serait l'état d'appoint faire pour le système?

La première chose qui vient à l'esprit serait d'avoir le premier bit à zéro, un, ou deux, en combinant l'essentiel les premiers bits et le second, ayant alors le stand second bit pour le zéro, deux, ou quatre. Bit trois étant à zéro, quatre ou huit. Fondamentalement comprimant 4 bits pour 3 si j'ai pensé à ce droit.

Je ne sais pas cependant.

000 [0], 100 [1], 200 [2], 110 [3], 020 [4], 120 [5], 220 [6] 111 [7], 002 [8]
102 [9], 202 [10], 112 [11], 022 [12], 122 [13], 222 [14]

-VS -

000 [0], 100 [1], 010 [2], 110 [3], 001 [4], 101 [5], 011 [6], 111 [7]

Maintenant que semble une grosse différence. Je pense Im plus confus maintenant que je l'étais au début. :scratchhead:
Strong with this one, the sudo is.
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Mars 31st, 2010, 6:30 pm

Quote:
Il ne tracer la voie SIGNÉ et UNSIGNED fonctionnent assez bien. Bien que Im peur Im demande encore pourquoi son ensemble positif ou Hanf et demi, au lieu de tous les positifs ou négatifs.


Si c'est le cas tous positifs ou tous négatifs, vous devez vérifier la valeur retournée de tous vos calculs de les assigner à une variable qui peut contenir la valeur. Objectif demi et demi vous donne la possibilité de travailler avec des nombres négatifs et des nombres positifs avec le dessus de la tête.

Si vous pouvez trouver un moyen d'obtenir une puce d'utiliser le code trinaire Je vous donnerai un dollar ;)

Ne this pas qu'il soit impossible, mais, sur et en dehors est si simple par rapport à tenter de représenter un Etat tiers.
#define NULL (::rand() % 2)
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Mars 31st, 2010, 6:37 pm

Quote:
Si vous pouvez trouver un moyen d'obtenir une puce d'utiliser le code trinaire Je vous donnerai un dollar


Combien allez-vous me donner à vous dire comment j'ai fait? :D
Strong with this one, the sudo is.
  • Mas Sehguh
  • Mastermind
  • Mastermind
  • Avatar de l’utilisateur
  • Inscription: Aoû 07, 2004
  • Messages: 1853
  • Status: Offline

Message Avril 1st, 2010, 9:00 pm

entiers signés sont les pratiques - c'est pour cette raison que Java a eux. La vraie question est donc pourquoi nous avons des entiers non signés? Nous en avons fait la taille des tableaux peuvent être plus de la moitié l'espace d'adressage. entiers signés dont la taille en bits est la même que la taille d'un pointeur ne peut pas représenter la taille d'un tableau thats plus de la moitié l'espace d'adressage, mais des entiers non signés peuvent représenter les tailles de tous les tableaux.
  • RockmanTV
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Oct 12, 2004
  • Messages: 348
  • Status: Offline

Message Avril 8th, 2010, 12:23 pm

Ce fil est un peu vieux mais si vous n'avez pas l'esprit mauvais jeter dans mon hypothèse.

UNSIGNED et SIGNÉ vous permettre de profiter pleinement de la mémoire dont vous disposez. Dans les systèmes d'aujourd'hui, il peut ne pas être aussi grande de la face, mais dans les systèmes plus anciens quand vous aviez des ressources limitées (pensez à KBs de RAM ou ne pas) en utilisant SIGNÉ et UNSIGNED vous a permis d'obtenir le plus pour votre argent car dans la plupart des cas, vous êtes traiter avec des valeurs positives.

SIGNÉ valeurs encore besoin d'exister parce que parfois vous avez besoin d'utiliser des valeurs négatives, mais pour le moment vous n'avez pas, UNSIGNED valeurs vous a permis d'étendre cette valeur un peu plus loin.

Just my two cents...

Afficher de l'information

  • Total des messages de ce sujet: 7 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 222 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC