es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: BIGINTEGER

Cuando uso la API de la plataforma abierta de Shopee, utilizo el siguiente método para construir una URL y enviar una solicitud POST, pero frecuentemente obtengo el mensaje “Firma incorrecta”, ¿alguna solución?

public static String buildSignAndUrl(long partnerId, String secret, String path){ long timestamp = System.currentTimeMillis() / 1000L; String base_String = String.format(“%s%s%s”, partnerId, path, timestamp); byte[] baseStringBytes; byte[] partner_key; BigInteger sign = null; try{ baseStringBytes = base_String.getBytes(StandardCharsets.UTF_8); partner_key = secret.getBytes(StandardCharsets.UTF_8); Mac mac = Mac.getInstance(HmacAlgorithms.HMAC_SHA_256.toString()); SecretKeySpec secret_key = new SecretKeySpec(partner_key, HmacAlgorithms.HMAC_SHA_256.toString()); mac.init(secret_key); sign = . . . Read more

Logaritmo de un BigInt

¿Existe alguna manera de obtener el logaritmo de un BigInt en JavaScript? Con números normales utilizarías este código: const largeNumber = 1000; const result = Math.log(largeNumber); Sin embargo, necesito trabajar con números factorial, potencialmente mayores que 170!, por lo que el tipo de número regular no funciona. Math.log no funciona . . . Read more

¿Cómo declarar manualmente uint512_t en boost? Para declarar manualmente uint512_t en boost, se deben seguir los siguientes pasos: 1. Asegúrese de tener boost instalado en su sistema y haber incluido la biblioteca necesaria en su archivo de encabezado. “` #include “` 2. Luego, puede declarar uint512_t utilizando la siguiente sintaxis: “` boost::multiprecision::uint512_t variable_name; “` Aquí, “variable_name” es el nombre que desee asignarle a su variable uint512_t. 3. Ahora está listo para utilizar la variable uint512_t en su código para realizar operaciones numéricas de gran tamaño con precisión. Es importante tener en cuenta que uint512_t es un tipo de datos entero sin signo de 512 bits proporcionado por la biblioteca de precisión múltiple de boost. Al declarar uint512_t de esta manera, estará utilizando la funcionalidad de precisión mejorada que boost ofrece para manejar números enteros de gran tamaño.

Quiero declarar esto: uint512_t qwe = 0x5FBFF498AA938CE739B8E022FBAFEF40563F6E6A3472FC2A514C0CE9DAE23B7E; pero C++ no lo permite (también lo indica en Visual Studio Code): entero constante es demasiado grande para su tipo y se imprime como: x: 0x514c0ce9dae23b7e ¿Puedes ayudarme, por favor?