c - 为什么在下面的c语句中,num值可以改变
问题描述
result[0] = (num % base) + '0';
当 num 在此语句之前为偶数时,num 在上述语句之后变为 48。当 num 在此语句之前为奇数时,num 在上述语句之后变为 49。
解决方案
result[0] = (num % base) + '0';
的 ASCII 码'0'
是 48。如果你的号码 id 是偶数,base == 2
结果num % base
是 0。48 + 0 == 48
. 如果你的数字是奇数,base == 2
结果num % base
是1
。48 + 1 == 49
. ASCII 中的 49 是'1'
推荐阅读
- r - 在一个范围内生成 rnorm() 数据
- netlogo - Netlogo,将变量分配给邻居
- php - 外键记录多条时,如何显示一次用户信息?
- spring-boot - 如何使用 MockMVC 和 StandaloneSetup 而没有 WebApplicationContext 测试 Thymeleaf?
- html - 如何在滑块圆形复选框中集成链接
- javascript - 如何在基于 Firebase 查询的规则中按包含字符串的 orderByChild 进行过滤
- spi - stm32F1 dma关于spi循环模式传输数据量
- c# - 当类型派生自同一接口时合并可观察序列
- arduino - 模拟写入未设置 0V
- javascript - 向下滚动时粘滞文本