Article View: es.comp.lenguajes.c++
Article #103Re: Desarrollo de Entero de Longitud Indefinida
From: Pedro Maicas
Date: Wed, 13 Aug 2008 19:27
Date: Wed, 13 Aug 2008 19:27
48 lines
2788 bytes
2788 bytes
On Wed, 13 Aug 2008 10:26:19 -0700 (PDT), "R.G.A.M." <rgam1989@gmail.com>
wrote:
>Mi problem�tica radica en que quiero sobrecargar el operador std::cin
>para esta clase, y en lo posible me gustar�a evitar trabajar con
>cadenas (sean "char" o "string"). �Existe alguna forma de adaptar al
>b�fer para ello? N�tese que debo poder calcular la cantidad de
>d�gitos, o vaciar el b�fer en sentido contrario al corriente.
>
>Crear el constructor de la clase (asignando directamente un valor
>num�rico al declarar la variable), seg�n mi parecer, es un problema
>similar. Tambi�n me gustar�a ser guiado para ello.
Cuando hablas de d�gitos � te refieres a d�gitos decimales ?,
El numero almecenado en cada int (long long int dices, pero ser� lo mismo)
� estar� en complemento a dos o en bcd ?
Ya que parece que cuendo dices d�gito te refieres a un numero
decimal, no creo que exista nada tan simple como aceptar un string
de longitud indefinida de d�gitos asci y convertirlo a bcd.
Sin embargo ser�a mas eficiente y demostrar�a mas dominio hacerlo
en complemento a dos, en cuyo caso pasar un string de tropecientos digitos
ser�a un bucle, en el que el valor interno se multiplica por diez
y se le suma el d�gito.
Grandioso::Grandioso(char *pp)
{
valor_interno = 0;
for(;*pp;pp++){
valor_interno = 10 * valor_interno + (*pp & 0x0F);
}
}
Las operaciones de multiplicacion por diez y la suma, ser�an funciones
implementadas por ti y trabajar�an sobre el valor interno de longitud
indefinida en complemento a dos.
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en www.maicas.net
Technical Details
Message-ID:
<3ac6a4hk7tok3srrm49aal37ibis5eqp90@4ax.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!feeder.news-service.com!news.netcologne.de!newsfeed-fusi2.netcologne.de!news.k-dsl.de!news.antakira.com!cagarruta.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mailReferences:
<f5c6022a-3038-4574-a0f4-bbec4989d8f8@f36g2000hsa.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: f53ec,1761539f9939c78b X-Google-Attributes: gidf53ec,domainid0,public,usenet X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!feeder.news-service.com!news.netcologne.de!newsfeed-fusi2.netcologne.de!news.k-dsl.de!news.antakira.com!cagarruta.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail From: Pedro Maicas <esta_no_es@jet.es> Newsgroups: es.comp.lenguajes.c++ Subject: Re: Desarrollo de Entero de Longitud Indefinida Date: Wed, 13 Aug 2008 21:27:30 +0200 Organization: escomposlinux.org Lines: 48 Message-ID: <3ac6a4hk7tok3srrm49aal37ibis5eqp90@4ax.com> References: <f5c6022a-3038-4574-a0f4-bbec4989d8f8@f36g2000hsa.googlegroups.com> NNTP-Posting-Host: 77.210.97.254 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: hercules.cohp1 1218655651 19816 77.210.97.254 (13 Aug 2008 19:27:31 GMT) X-Complaints-To: newsmaster@news-17.escomposlinux.org NNTP-Posting-Date: Wed, 13 Aug 2008 19:27:31 +0000 (UTC) X-Newsreader: Forte Agent 1.8/32.553