本文介绍了boost :: multiprecision :: uint128_t sizeof为24的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基础数学(128/8 = 16)讲不同的话.我有点失望,想要一些答案-因为根据我的习惯,这种表示法(type_num_of_bytes_t)不仅描述了可以放入变量的数据量,而且还描​​述了跨平台固定可变大小,后者对恕我直言更为重要.我在做什么错了?

Basic math (128 / 8 = 16) speaks differently. I'm kinda disappointed and want some answers - since from what I've been used to, that notation(type_num_of_bytes_t) describes not just the amount of data you can put into the variable, but also cross-platform fixed variable size, and the latter is IMHO even more important. What am I doing wrong?

#include "boost/multiprecision/cpp_int.hpp"
using boost::multiprecision::uint128_t;

...

qDebug() << sizeof(uint128_t);

输出:24.

我正在使用标准的x86/64架构CPU,并在Windows上通过vs2013进行编译.

I'm using standard x86/64 architecture CPU, compiling with vs2013 on Windows.

更新:boost版本为1.61.

UPDATE: boost version is 1.61.

推荐答案

额外的机器字(在x86/64 8字节上)使大小为24,而不是预期的16.

The extra machine word (on x86/64 8 bytes) makes the size 24 instead of the expected 16.

这篇关于boost :: multiprecision :: uint128_t sizeof为24的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 03:37