Anar al contingut

Signe (computació)

De L'Enciclopèdia, la wikipedia en valencià

En computació, el signe o assignació (en anglés, signedness) és una propietat dels tipos de senyes que representen números en programes computacionals. Una variable numèrica està signada (assignada; en anglés signed) si pot representar tant números positius com negatius, i no signada (o desasignada, en anglés unsigned) si únicament pot representar números no negatius (zero o números positius).

Ya que els números signados poden representar valors positius i negatius, perden un ranc sobre els números desasignados del mateix tamany (en bits), degut a que aproximadament la mitat dels valors possibles són no positius, mentres que el respectiu tipo desasignado pot dedicar tots els possibles valors al ranc de números positius.

Per eixemple, un sancer de 16-bit en un complement a dos signado pot contindre els valors -32768 a 32767 inclusivament, mentres que un sancer de 16-bit no signado pot contindre els valors de 0 a 65535. Per este método de representació de signe, el bit més a l'esquerra (bit més significante) denota si el valor és positiu o negatiu (0 per a positiu i 1 per a negatiu).

En llenguages de programació

[editar | editar còdic]

Per a la majoria de les arquitectura, no existix una distinció del tipo signado o no signado en còdic màquina. No obstant, les instruccions d'aritmètica usualment establixen diferents flags en el processador, com la C flag (carry flag) para aritmètica no signada i la V flag (overflow flag) per a la signada. Estos valors poden prendre's en conte per subsecuentes bots o comandos aritmètics.

El llenguage de programació C, junt als seus derivats, dispon de la propietat de signe per a tots els tipos de senya sancers, de la mateixa manera que per als "caràcters". Per a sancers, el modificador unsigned definix el tipo com no signado. El tipo predeterminat d'un sancer és signado, pero pot ser establida explícitament en el modificador signed. Per contrast, els estàndarts de C declaren signed char (caràcter signado), unsigned char (caràcter no signado), i char (caràcter), com tres tipos distints, pero especifica que els tres deuen tindre el mateix tamany i alliniació. Ademés, char deu tindre el mateix ranc numèric, ya siga signed char o unsigned char, pero l'elecció d'cual depén de la plataforma. Els sancers lliterals poden assignar-se com no signados en el sufix O. Per eixemple, 0xFFFFFFFF torna -1, pero 0xFFFFFFFFU torna 4,294,967,295 per a còdic de 32-bits.

Els compiladorés normalment mostren una advertència quan es fan comparacions entre números signados i no signados, o quan un és convertit a l'atre. Estes són operacions potencialment problemàtiques, ya que els rancs dels tipos signados i no signados són diferents.

Vore també

[editar | editar còdic]