我对编码还比较陌生,想知道如何在我的c ++代码中声明消息长度(mlen)和密文(clen)长度。但是,我不太确定我将它们声明为什么。 (int?char?unsigned long long?) 提供给我的代码中包含的公式为:
"\"C:\Java\jre8\bin\java\" -Djava.library.path=\"C:\some\path\lib\" -classpath \"some;long;classpath\" com.foo.app.Main"
提供给我的信息是:
它以320位的状态运行,带有64位的消息块。
更新:对这个不好的问题很抱歉,我意识到给我的消息长度是无符号的,而且是用我没有意识到的较小字体编写的。
答案 0 :(得分:0)
如果对您的类型必须有多大的要求没有严格的要求,则应使用旨在表示大小的本机C ++类型:
std::size_t
与std::size_t
,unsigned int
等类型相比,unsigned short
的主要优点是:
sizeof
运算符的结果类型)。new[]
,std::vector
和STL大部分中的索引和长度的类型。由于您可能会使用此类数据结构和算法,因此可以避免在不同类型之间进行无用的转换,从而使代码更具可读性,而无需编译器警告。std::size_t
告诉您有关其语义的一些信息(索引和大小;隐含无符号)。其他unsigned int
等整数类型可用于表示任何。有关其他信息,请查看cppreference.com。
另一方面,如果您需要紧密打包数据(例如,用于网络协议),则应使用最小的类型,例如std::uint16_t
,std::uint32_t
等。