我将负号值输出到位并导回,但是当输入符号的位丢失时。
typedef multiprecision::int512_t balance_value;
vector<uint8_t> byteSet;
export_bits(static_cast<boost::multiprecision::int512_t>(balance), back_inserter(byteSet), 8);
当我尝试将位导回到int512_t时,符号丢失了。
balance_value balance;
import_bits(balance, byteSet.begin(), byteSet.end());
答案 0 :(得分:0)
这是设计的。 documentation州
将val的绝对值导出到
OutputIterator out
。该函数一次将chunk_size
位写入OutputIterator
,如果msv_first
为真,则首先写入最重要的块。每个chunk_size
块中的字节和位顺序始终采用机器本机格式。此外,每个块在boost::uintmax_t
分配给*out
时都会存储在SELECT mt_prs_groups.groupId, mt_prs_groups.groupName, mt_prs_administrators.administratorId FROM mt_prs_status INNER JOIN (mt_prs_administrators INNER JOIN mt_prs_groups ON mt_prs_administrators.administratorId = mt_prs_groups.administratorId) ON (mt_prs_status.statusId = mt_prs_groups.statusId) AND (mt_prs_status.statusId = mt_prs_administrators.statusId) WHERE (((mt_prs_status.status)="Active") AND ((mt_prs_administrators.administratorId)=3)) OR (((mt_prs_administrators.administratorId)=4));
中。
如果您需要便携式表示,还要注意字节序问题。