相关疑难解决方法(0)

整数文字是否被认为是无符号的?

如果我的代码中有一些正整数文字,比如说50,那么编译器是否认为它是unsigned int或int类型?

c types numbers

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

在java中正确声明浮动和长类型?

所以我明白,如果我声明一个长变量,我需要在数字的末尾添加一个 L。

long x = 123L;
Run Code Online (Sandbox Code Playgroud)

与 float 类型相同,我需要在变量末尾添加 F。

float x = 1.1F;
Run Code Online (Sandbox Code Playgroud)

但我想知道为什么在这两种情况下它的做法不同?我的意思是如果我声明一个 int 或任何其他数据类型,它就完成了

int x = 1;
Run Code Online (Sandbox Code Playgroud)

为什么这两种数据类型的声明是以某种方式完成的(对于 long 和 float 类型)。我知道它是这样做的,我只是想了解为什么要这样做?

java floating-point double

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

C中位操作的奇怪行为

我正在学习C编程语言及其位运算符.我编写了如下代码,我预计代码的结果是相同的.但事实并非如此.

#include <stdio.h>
#define N 0

int main() {
    int n = 0;
    printf("%d\n", ~0x00 + (0x01 << (0x20 + (~n + 1))));
    printf("%d\n", ~0x00 + (0x01 << (0x20 + (~N + 1))));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我假设机器在32位上将数字表示为2的补码.它们都必须是-1,即所有位都是1,但第一个是0,第二个是-1.我认为除了使用变量或常量之外,两者都是完全相同的代码.

我在i5 CPU的Mac上使用gcc和-m32选项.

它出什么问题了?

谢谢.

c bit

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

如何(〜(0))将在c中解释?

最近在CCS标准库中我见过这样的东西

函数正在使用unsigned int参数.

delay(unsigned int)
Run Code Online (Sandbox Code Playgroud)

这是以这种方式使用的

delay(~(0));
Run Code Online (Sandbox Code Playgroud)

现在如何解释(〜(0))?

如果我这样使用

printf("%d",(~(0)));
Run Code Online (Sandbox Code Playgroud)

它如何处理签名int?unsigned int?长整数?还是unsigned char?

它如何依赖于系统?c规格说的是什么?

c

0
推荐指数
1
解决办法
82
查看次数

标签 统计

c ×3

bit ×1

double ×1

floating-point ×1

java ×1

numbers ×1

types ×1