Membro : Iniciar |Inscrición |Cargando coñecemento
Buscar
Tipo de conversión [Modificación ]
Na ciencia da computación, a conversión de tipo, o tipo de casting e a coacción do tipo son formas diferentes de cambiar unha entidade dun tipo de datos a outro. Un exemplo sería a conversión dun valor enteiro nun valor de punto flotante ou a súa representación textual como unha cadea, e viceversa. As conversións de tipo poden aproveitar certas características de xerarquías de tipos ou de representacións de datos. Dous aspectos importantes dunha conversión de tipo é se isto ocorre de forma implícita ou explícita, e se a representación de datos subxacente é convertida dunha representación a outra ou unha representación dada simplemente reinterpreta a representación doutro tipo de datos. En xeral, os dous tipos de datos primitivos e compostos poden ser convertidos.
Cada linguaxe de programación ten as súas propias regras sobre como se poden converter os tipos. As linguas con tipografía forte adoitan facer poucas conversións implícitas e desencorajan a reinterpretación das representacións, mentres que os idiomas con mecanografía feble realizan moitas conversións implícitas entre os tipos de datos. A linguaxe de dixitación feble adoita permitir que o compilador interprete arbitrariamente un elemento de datos como tendo representacións diferentes: isto pode ser un erro de programación non obvio ou un método técnico para xestionar directamente o hardware subxacente.
Na maioría dos idiomas, a palabra coerción úsase para denotar unha conversión implícita, xa sexa durante a compilación ou durante o tempo de execución. Por exemplo, nunha expresión que mestura números enteiros e puntos flotantes (como 5 0.1), o compilador converterá automáticamente a representación de enteiros en representación de punto flotante para que as fraccións non se perdan. As conversións de tipo explícito indícanse escribindo código adicional (por exemplo, engadindo identificadores de tipo ou chamando a rutinas incorporadas) ou codificando rutinas de conversión para que o compilador empregue cando se interrompería por outro.
Na maioría dos idiomas similares a ALGOL, como Pascal, Modula-2, Ada (linguaxe de programación) e Delphi, a conversión eo casting son conceptos claramente distintos. Nestes idiomas, a conversión refírese a un cambio de forma implícita ou explícita dun valor dun formato de almacenamento de datos a outro, por exemplo un enteiro de 16 bits para un enteiro de 32 bits. As necesidades de almacenamento poden cambiar como resultado da conversión, incluíndo unha posible perda de precisión ou truncamiento. O reparto de palabras, por outra banda, refírese á modificación explícita da interpretación do patrón de bits que representa un valor dun tipo a outro. Por exemplo, 32 bits contiguos poden ser tratados como unha matriz de 32 booleanos, unha cadea de 4 bytes, un enteiro sen signo de 32 bits ou un valor de punto flotante de precisión única IEEE. Debido a que os bits almacenados nunca son modificados, o programador debe saber detalles de baixo nivel como o formato de representación, a orde de bytes e as necesidades de aliñamento, para emitir de forma significativa.
Na familia C de linguas e ALGOL 68, o reparto de palabras adoita referirse a unha conversión de tipo explícito (en oposición a unha conversión implícita), causando certa ambigüidade sobre se se trata dunha reinterpretación dun patrón de bit ou dunha representación de datos reais conversión. Máis importante é a multitude de formas e regras que se aplican a que tipo de datos (ou clase) está situado por un punteiro e como un punteiro pode ser axustado polo compilador en casos como a herdanza de obxecto (clase).
[Informática][Idioma de programación][Compilador][Pascal: linguaxe de programación][Ada: linguaxe de programación]
1.Comparación de linguas
1.1.Idiomas similares a C
1.1.1.Conversión de tipo implícito
1.1.1.1.Promoción de tipos
1.1.2.Conversión de tipo explícito
1.2.C # e C
1.3.Eiffel
1.3.1.Definición de conversión de tipo en Eiffel
1.3.2.Exemplo
2.Problemas de seguridade
[Cargar Máis Contido ]


Dereitos de autor @2018 Lxjkh