gpt4 book ai didi

c - 关于简单c编程代码的几个问题

转载 作者:行者123 更新时间:2023-11-30 16:32:29 25 4
gpt4 key购买 nike

我最近刚刚开始在学校学习 C 编程,并且已经遇到了一些简单的障碍。我称其为简单,因为我可以感觉到解决方案就在那里,但似乎无法让它发挥作用。

问题 1:我试图让一个人输入 2 个变量,一个用于 X,一个用于 Y。我已经学会使用 char c; c = getchar();scanf_s("%d", &n);

我想知道是否可以使用这两个中的任何一个来让一个人能够为 X 和 Y 输入 2 个不同的变量。我还在网上看到有时人们被要求输入: x y( 之间有一个空格),然后代码会将第一个输入识别为 x,将空格后的输入识别为 y。

第二个问题是我尝试使用命令x>>31显示值 x 的 32 位二进制代码,但我得到的输出是 0。有关如何解决此问题的任何线索吗?例如我有一行代码是:printf("%d & %d = %d %d\n", num1, num2, result1, result1>>31);但最后 %d 显示 0而不是 result1 的 32 位二进制代码。 picture of my code and the output I get

最佳答案

回复:scanf,我建议阅读该函数的文档。此页面适用于 Visual Studio 2015,但无论您使用哪种 IDE,这些示例都应该对您有所帮助:

https://msdn.microsoft.com/en-us/library/w40768et.aspx

您误解了“>>”运算符的作用。 (result1>>31) 将 result1 右移 31 位。对于 32 位值,这将导致 0,除非它是无符号且非常大(超过 2^31,约为 40 亿,在这种情况下它将导致 1)或有符号且负数,在这种情况下我相信它解析为 -1。

您可以使用 >> 来显示数字的二进制表示形式,但您需要多次使用它来提取每个位。您看到的 0 是 32 位值的第一位。

我建议您首先在单独的行上输出每个位,以便您可以看到代码在做什么,然后再将它们连接在一起输出为一个 32 位数字。

关于c - 关于简单c编程代码的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50138277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com