相关疑难解决方法(0)

在C++中有符号整数溢出仍然是未定义的行为吗?

众所周知,有符号整数溢出是未定义的行为.但是C++ 11 cstdint文档中有一些有趣的东西:

有符号整数类型,宽度分别为8,16,32和64位,没有填充位,负值使用2的补码(仅当实现直接支持该类型时提供)

见链接

这里是我的问题:由于标准明确地说,对int8_t,int16_t,int32_tint64_t负数是2的补,仍然是这些类型的未定义行为的泛滥?

编辑我检查了C++ 11和C11标准,这是我发现的:

C++ 11,§18.4.1:

标题定义了所有函数,类型和宏,与C标准中的7.20相同.

C11,§7.20.1.1:

typedef名称intN_t指定有符号整数类型,其宽度为N,无填充位和二进制补码表示.因此,int8_t表示这样的带符号整数类型,其宽度恰好为8位.

c++ integer-overflow undefined-behavior c++11

74
推荐指数
2
解决办法
2万
查看次数

在没有字符串或字符的帮助下找到数字的反向(例如:2500反向0025)

当最后有零时,是否有任何找到反向的技术.

在遵循%10技术的算法时,结果为52.并且0缺失.

我只是通过打印提醒(0)来反过来.但我不满意,因为我希望将答案显示为变量中的值.

请告诉我是否有任何技术将值005存储到变量并显示005(请不要使用字符串或字符或数组).

c c++

1
推荐指数
2
解决办法
1495
查看次数

标签 统计

c++ ×2

c ×1

c++11 ×1

integer-overflow ×1

undefined-behavior ×1