动态分配数组,十六进制
Dynamic allocation arrays, hexa system
我的代码有问题。我不知道,为什么它算错了。这个函数应该在十六进制中添加两个数字。我在动态分配数组中保留数字。
CHexNumber CHexNumber::cAdd(CHexNumber *pcOther) {
int i_result_len = 0;
CHexNumber c_result(i_result_len);
int i_result = 0;
int i_memory = 0;
i_result_len = (i_len > pcOther -> i_len ? i_len + 1 : pcOther -> i_len + 1);
c_result.vSetLength(i_result_len);
for (int i = 0; i < c_result.i_len; i++)
{
i_result = pi_number[i] + pcOther->pi_number[i] + i_memory;
if (i_memory > 0)
i_memory--;
if (i_result >= 16)
{
i_result %= 16;
i_memory++;
}
c_result.pi_number[i] = i_result;
}
return(c_result); }
我添加了屏幕与in和out。http://screenshooter.net/102563004/tumxpyx
Mateusz,在构造函数中,如果您更改此
,则忽略传递的参数并始终将DEFAULT_LEN
设置为表达式长度。CHexNumber::CHexNumber(int iLen)
{
iLen = DEFAULT_LEN;
vSetNumber(iLen);
vSetLength(iLen);
}
CHexNumber::CHexNumber(int iLen)
{
vSetNumber(iLen);
vSetLength(iLen);
}
另一件事是改变这个:
CHexNumber c_b(s_temp.length());
c_a.vSetSign(bCheckNumber(s_temp));
c_a.vChargeArray(s_temp);
c_a.getValue();
到
CHexNumber c_b(s_temp.length());
c_b.vSetSign(bCheckNumber(s_temp));
c_b.vChargeArray(s_temp);
c_b.getValue();
还有这个
i_result_len = (i_len > pcOther -> i_len ? i_len + 1 : pcOther -> i_len + 1);
c_result.vSetLength(i_result_len);
这:
i_result_len = (i_len > pcOther -> i_len ? i_len + 1 : pcOther -> i_len + 1);
c_result.vSetLength(i_result_len);
c_result.vSetNumber(i_result_len);
你也有其他的问题,如内存泄漏,和魔术数字,但让我们现在离开。
相关文章:
- 将字符串转换为十六进制数组c++
- 如何使系统在十六进制数之前打印 0x,在八进制数之前打印 0?
- 将大十六进制数转换为十进制形式(以 10 为基数的形式)的算法
- 为什么将字符串输出到未命名的 std::ofstream 反而给了我一个十六进制数?
- 使用无符号字符数组输入十六进制数
- 将十六进制数作为主要函数参数
- 钻头和转移操作数以清除选定的十六进制数
- 在C/C++中将十六进制数组作为字符串写入文件
- 十六进制数组 cout 到文本文件失败
- 将十六进制数转换为布尔数组
- 在 C++,(C) 中更改十六进制数的前导零位
- 将十六进制数的 char[] 转换为对应于 ASCII 表中十六进制数字的字母的 char[] 并反转
- 如何获取十六进制数的最后 n 位数字
- 将char数组转换为十六进制数组(C++)
- 从几个十进制数中绘制一个十六进制数
- 如何使用十六进制数初始化字符数组
- 从十六进制数组读取 Int
- 从十六进制数组读取双精度到向量
- ~十六进制数前的符号
- c++十六进制数组附加字符