Sistemas numéricos posicionales

En su proyecto (C ++, GUI en C #), necesitaba trabajar con diferentes sistemas numéricos (2,6,10,16 y no solo). Por otra parte, realizar operaciones matemáticas en ellos (suma, resta, multiplicación, división). Debemos trabajar tanto con números naturales como reales. E idealmente, para obtener la salida de las partes completas y fraccionarias en forma de, por ejemplo, la línea - para mostrar a los usuarios.

Es necesario llamar a una función, por ejemplo, suma con dos argumentos: 1 - un número natural en el sistema decimal (2300), 2 - un número real en el sistema ternario ("2120.102")

¿Hay alguna biblioteca (en C ++ o C #) que pueda proporcionar esta funcionalidad?

Si no hay ninguno, ¿no sería mejor implementarlo en algún lenguaje funcional (aunque probablemente ya exista) y conectarlo con C ++ o C #?

¿Y sabes exactamente lo que necesitas? ¿Por qué almacenar y realizar cálculos en diferentes sistemas numéricos? Aún así, todo lo mismo en los turnos binarios. ¿O hay algún tipo de beneficio de los sistemas de números dados? Si este es un trabajo educativo, te aconsejo que escribas con tus manos. - linda schnetzer
Operaré, naturalmente, con un número y no almacenaré números en diferentes sistemas (simplemente no tiene sentido). Y la pregunta en sí era si hay bibliotecas con funcionalidad ya implementada para mate. operaciones Bueno, es decir, como veo la llamada, por ejemplo, la función de adición en la biblioteca encontrada: el primer argumento es una cadena con un número real de arsenal n. - 5-ric), el tercero es el tipo del sistema numérico resultante - sistema numérico m-ary (hexadecimal), y en la salida quiero obtener la línea de suma en el formato del sistema m-ary ("FF3.44D"). - suzy page
es decir esperas ver algo como esto:
string Add_3base_to_5_base_ret_16_base (string base_3, string base_5);
? ¿Cuántas funciones deben declararse en una biblioteca de este tipo? Sí, y por qué?

Si es así, espere en vano, porque todo se resuelve de otra manera:
to_base (from_base (base3, 3) + from_base (base5, 5), 16);

Opciones de conversión para encontrar ningún problema. ¿Y hay realmente un problema: escribir dos funciones de conversión y, si es necesario, una clase con 4 operadores sobrecargados y los envoltorios necesarios para las operaciones en el tapete? - tracey holden
Sí, quise decir exactamente el formato que escribió, simplemente apresúrese con la respuesta ...
Sobre el hecho de que el problema - no, no es un problema. Probablemente la pregunta de un jigger no valga la pena ... - ashley espey
¿Por qué incluso necesitas operar con un número en un sistema numérico extraño? Guárdelo en uno, binario como de costumbre, guíelo, léalo en él y luego déjelo como debe. - tania hutley
Anteriormente, ya he respondido que esto es exactamente lo que pretendía hacer, toda la esencia de la pregunta se reduce a la pregunta, ¿existe un código (función) ya hecho para la conversión y la realización de un jaque mate? Operaciones con números reales.
Y sí, los algoritmos de conversión me son conocidos. - shrabonti
Una vez más. Hay una conversión. Operaciones, ¿por qué? Las operaciones se realizan de la manera habitual con la representación binaria habitual en el hardware, el resultado se muestra como queremos. Para los enteros hay link Para los reales, no lo sé. - seng chuen
Hmm ... sí, tienes razón, lo principal es la conversión, y no necesitas operaciones ... Sí, he sido demasiado inteligente en algo ... - neni
Respuestas
shrieking
Mezclas lógica con pantalla. (Y este es uno de los mayores pecados en la programación)
No hay números en el sistema decimal o en el sistema ternario, números, estos son números. Hay un sistema de registro de números decimales. (Es decir, hablando de la pantalla).
Si divide correctamente, tendrá: convertidores de cadena a numérico y viceversa, y las funciones matemáticas habituales.

Por ejemplo: crear una clase de número, agregarle funciones:
Número (& lt; record_string & gt;, & lt; bit & gt;)
__toString (& lt; profundidad de bits & gt;)
Y sobrecargas de suma, resta, operadores de división.
Acabo de formular la pregunta de forma incompleta. Mi lógica y pantalla no están confundidas de ninguna manera. Arriba, agregué una pregunta. Entiendo que todas las operaciones intermedias serán de la forma: desde una cadena desde el sistema X-nar hasta la décima (bueno, esencialmente binario, pero no profundizaremos), luego realizaremos las operaciones y luego las enviaremos en formato de cadena a Y-ary. - leyla
heather rowland
hace un par de años me divertí mucho (escribí una calculadora), pero tuve que escribir clases yo mismo: no busqué en Google nada de eso.

Es cierto que guardé todo en forma de arreglos (y el orden, la mantisa y el fundamento de las SS) y realicé las acciones en ellos programáticamente. Era claramente muy lento. Pero ilustró el trabajo con diferentes bases del sistema numérico.
¿Hay algo similar a mi objetivo :) ¿Hay - valentino
en el githaba? Sería interesante ver - rachel barkley