目前我知道有两种方式。
第一种:使用STL中的bitset类来完成。
1、因为是在Android的JNI层实现,所以需要在Application.mk里面配置STL库的加载。
Application.mk里面添加配置如下:
APP_STL := c++_static
2、在JNI层的操作.cpp文件中这样操作:
#include <bitset>
#include <string>
using namespace std;
int nValue = 5;
string str = bitset< 7 >(nValue).to_string();
如此str的值就是“0000101”,完成功能。
第二种:自定义一个函数来实现这个功能:
string Jim_toBinary(int nData, int nLen)
{
string str = "";
for (int i = nLen; i >= 0; i--)
{
if ((nData >> i) & 0x01)
{
str.append("1");
}
else
{
str.append("0");
}
}
return str;
}
比如,现在我就是需要实现第一种方式的那个功能,将int型的5 弄成 7位的二进制字符串 “0000101”
int nValue = 5;
string str = Jim_toBinary(nValue, 7);
---- The End.