Número do tipo ponto flutuante com precisão estendida - Nunes, Richardson Leandro [UNESP] (2008)
A execução de cálculos computaciona is é limit ada pela precisão que as linguagens de programação podem fornecer. Os compiladores possuem formatos de números com informação insuficiente para realizar cálculos que exijam grande precisão, porém, possuem ferramentas que possibilitam a criação de formatos extras. Utilizando o conceito de classe, é possíve l criar objetos computacionais e métodos. Visando solucionar problemas de precisão criou-se uma classe na qual o objeto é um número de ponto flutuante aqui chamado de Sfloat. A classe implementada em C++ é composta de um arranjo de variáveis booleanas de tamanho arbitrário para representar os bit s de um número de ponto flutuante e os métodos de classe para representar operadores aritmét icos e lógicos. Os operadores binários aritmét icos estão sobrecarregados, ou seja, os quatro operadores já existentes (“+”, “-”, “*” e “/”) podem ut ilizar números Sfloat como argumentos. Os operadores binários lógicos relacionais (<, >, <=, >=, ==, !=) seguem o mesmo modelo dos binários aritmét icos, sendo sobrecarregados para ut ilizar Sfloat como argumento. Para somar dois argumentos, soma-se dígito a dígito os dois argumentos. A subtração, na verdade, é a soma de um número posit ivo com um negat ivo, de modo que pode ser executada da mesma maneira que o operador soma, porém invertendo o sinal do segundo argumento. Na mult iplicação, somam-se as mult iplicações parciais de cada dígito de um dos fatores pelo outro fator, ou seja, a mult iplicação é executada como um somatório de mult iplicações parcia is. A divisão forma os dígitos do quociente verificando sempre qual o maior núme ro inteiro que pode mult iplicar o divisor sem ultrapassar o valor do dividendo. Sfloat foi ut ilizado para cálculos simples de soma, subtração...