我目前正在进行一个需要使用uint8_ t的项目。我发现了一个问题,有人能解释一下为什么会发生这种情况吗?
//using DIGIT_T = std::uint8_t;
using DIGIT_T = std::uint32_t;
std::uint8_t bits = 1;
DIGIT_T test1 = ~(DIGIT_T)0;
std::cout << std::hex << (std::uint64_t)test1 << std::endl;
DIGIT_T test2 = ((~(DIGIT_T)0) >> bits);
std::cout << std::hex << (std::uint64_t)test2 << std::endl;
在这种情况下,输出是预期的
ffffffff
7fffffff
但是当我取消注释第一行并使用uint8_ t时,输出是
ff
ff
这种行为给我带来了麻烦。
谢谢你的帮助。
马雷克
正如注释中已经详细解释的,这是由整数提升引起的。这应该可以达到目的:
DIGIT_T test2 = ((DIGIT_T)(~(DIGIT_T)0) >> bits);
这当然可以缩短为:
DIGIT_T test2 = (DIGIT_T)~0 >> bits;
现场演示
其中一个测试通过,另一个给出以下错误: java.lang.ClassCastException:类org.springframework.http.ResponseEntity不能强制转换为类org.junit.jupiter.api.function.executable(org.springframework.http.ResponseEntity和org.junit.jupiter.api
问题内容: 我试图用来创建我的,以确保我的构建/项目的质量。该项目也需要使用和。一切在我的本地计算机上都可以正常运行,但是现在我正在尝试使环境一致,可重现。当我尝试在新的虚拟机中运行时,会中断一个在本机中正常运行但 不在 新vm中运行的。 我检查了版本,,,(其)一切都是一样的。但是,我的Maven项目在此测试中失败了。 我在这里想念什么?任何想法,建议都会受到赞赏,因为我现在还没有想法,到目前为
对于下面的代码,我得到了不同的输出 输出为: 现在美国/洛杉矶是GMT-8/UTC-8或PST。但当我将参数从GMT-8改为America/Los_Angeles时, 输出为: 不能使用类似PST的缩写,因为它已被弃用。同时,CST可以指中央标准时间和中国标准时间。 我的输入是-8、-9-14等,我希望在GMT/UTC之前知道我是否可以在给定日期获得DST激活。 请在这方面指导我。
结果:1 2 3 有人能解释为什么会发生这种情况,以及我如何让非并行版本给出与并行版本相同的结果吗?
我使用以下代码从图库中选取图像。当我用三星Galaxy S4测试它时,它直接进入Gallery,这就是我真正想要的。 但是,当我在LG Optimus II设备上测试我的代码时,它会显示一个对话框,提供一个选项来选择图库或图片。换句话说,它增加了一个我不想要的层。 这两款设备都具有 KitKat 4.4.2 操作系统。