向数组中添加int,将LSB转换为0 c++
Adding int to array, converting LSB to 0 c++
我得到了一个函数,它将一个int作为参数,并将输出一个int[]。
输入int是一个介于0和1000之间的数字。我的目标是将这个数字转换成一个数组,其中每个索引都是输入数字的一位数字。如果输入数字中有两个数字,那么两个最低有效位将为0。
例如:
int num1 = 404;
int num2 = 42;
将有输出:
num1 = {4, 0, 4, 0}
num2 = {4, 2, 0, 0}
等等…
有什么聪明的方法可以做到这一点吗?一种方法是将数字转换为char*,但我也不太确定如何使用它。我此刻有点不知所措。顺便说一句:这不是家庭作业;)
itoa
函数或std::stringstream
类将数字转换为其符号表示。从那里,您可以从每个字符中减去'0'
,得到相应的数字0-9。
另一种方式是:
int tmpNum = num1;
int factor = 1;
int digits [4] = {0};
// Finding the most significant digit's weight
for (factor = 1; factor < num1; factor *= 10);
factor /= 10;
// Finding digits from most to least significant
for (int i = 0; tmpNum > 0; ++i)
{
digits[i] = tmpNum / factor;
tmpNum -= factor * digits[i];
factor /= 10;
}
这基本上是转换为10个基数(十进制)。或者精确地说是二进制编码的十进制。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 向数组中添加int,将LSB转换为0 c++
- 先将MSB转换为LSB