我正在致力于实现一些加密算法(AES,Blowfish)的C++程序,我需要获取一些评估指标。具体而言,我需要以千字节每秒来衡量加密/解密操作的数据。该操作将使用相同的纯文本数据来测量不同的算法。其中一部分是简单地使用定时器来获取秒数,第二部分是对比特数进行计数。从这里我可以计算出每秒的千字节数。C/C++加密:度量数据速率
我想解决的问题是如何测量通过算法的位数。算法以固定大小的无符号字符数组(格式取决于算法的8或16个字符)的格式输入。我最初的解决方案是计算通过算法传递的字符数,并将其作为字节数。字节乘以8然后可能是位数,但我已经读过一个字符不一定总是一个8位字节。位数的差异可能会严重扭曲结果。
如何获得无符号字符数组中的位数? (或者该数组中单个char元素的位数)。
如果你在一个C++程序的工作,那么你为什么要带标记'C'的问题?尽管C和C++可能相关并且分享了一些语法上的相似之处,但它们仍然是两种截然不同规则的不同语言。 –
我的程序中的加密算法的实现是公共领域,它们用C语言编写。我的程序(类似于一个包装)是用C++编写的。我已经删除了C标签,因为您对语义差异是正确的。 – x2kpb
除非你正在研究一个奇特的(也是最可能过时的)体系结构,否则一个字符中的位数就是8个。已经有一大堆代码可以做出这个假设(它也在POSIX中)。现在再添加几条线做同样的事情不会再受到伤害。请参阅http://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char –