记录一个unsigned int 的0被-1之后变成大数的小问题

特此吸取经验教训:

感谢吴哥的细心debug,哈哈,能发现这个问题好厉害~


定义:

vector<st_dialog*> m_v_dialog; // 数组
int m_index_v_dialog; // 当前对话的下标

--------------------------------------------------------------

问题代码:

void UiDialogLayer::closeDialogIfEnd()

{
if(m_index_v_dialog  >=  m_v_dialog.size() - 1)
{
closeDialog();
}

}

------------------------------------------------------------

在调用这段话之前执行了:

m_index_v_dialog = 0;
m_v_dialog.clear();

------------------------------------------------------------<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个基于NTL大数库实现的大整数模加乘除运算的C语言程序,供您参考: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #include <NTL/ZZ.h> using namespace std; using namespace NTL; void print(ZZ x) { char *str = new char[1024]; BytesFromZZ((unsigned char*)str, x, 1024); printf("%s\n", str); delete[] str; } int main() { ZZ a, b, c, d, e; char *str_a = new char[1024]; char *str_b = new char[1024]; char *str_c = new char[1024]; char *str_d = new char[1024]; char *str_e = new char[1024]; const char *str_mod = "100000000000000000000000"; // 模数为10^23 printf("请输入两个大整数:\n"); scanf("%s %s", str_a, str_b); // 转换为大整数 ZZFromBytes(a, (unsigned char*)str_a, strlen(str_a)); ZZFromBytes(b, (unsigned char*)str_b, strlen(str_b)); // 模加 c = (a + b) % conv<ZZ>(str_mod); printf("模加结果:"); print(c); // 模 d = (a - b) % conv<ZZ>(str_mod); printf("模结果:"); print(d); // 模乘 e = (a * b) % conv<ZZ>(str_mod); printf("模乘结果:"); print(e); // 模除 if (b == 0) { printf("除数不能为0!\n"); } else { c = a / b; printf("模除结果:"); print(c); } delete[] str_a; delete[] str_b; delete[] str_c; delete[] str_d; delete[] str_e; return 0; } ``` 该程序首先使用NTL库中的ZZ类型表示大整数,使用BytesFromZZ和ZZFromBytes函数将字符串转换为大整数。然后使用+、-、*、/等运算符对大整数进行模加、模、模乘、模除运算,其中模数为10^23。最后使用print函数将结果输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值