簡體   English   中英

C ++:如何存儲256位數字,以及如何將其轉換為十六進制?

[英]C++: How do I store a 256 bit number, and how do I convert it to hex?

整數只能使用32位,而長度只能使用64位...所以..當您使用更大的數字時會做什么?

另外,在二進制表示形式和十六進制表示形式之間切換會多么容易?

使用數組。 例如:

// Declare a structure containing an array of 4 64-bit integers
struct uint256_t
{
    uint64_t bits[4];
};

// Then, to convert to hex:
uint256_t x;
char hexstring[65];  // needs to be at least 64 hex digits + 1 for the null terminator
sprintf(hexstring, "%016llx%016llx%016llx%016llx", x.bits[0], x.bits[1], x.bits[2], x.bits[3]);

整數只能使用32位,而長度只能使用64位...所以..當您使用更大的數字時會做什么?

您使用大量的庫。

另外,在二進制表示形式和十六進制表示形式之間切換會多么容易?

我不明白這個問題。 一個數字就是一個數字。 您是否在問如何在特定基礎上打印數字? 您可以在使用流時格式化輸出,如下所示:

int x = 100;

cout << x << endl; // print decimal value
cout << oct << x << endl; // print octal value
cout << hex << x << endl; // print hexadecimal value

100
0144
0x64

考慮使用GMP算術庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM