Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 此操作的无符号长整型正确吗?_C_Long Integer_Bit Shift - Fatal编程技术网

C 此操作的无符号长整型正确吗?

C 此操作的无符号长整型正确吗?,c,long-integer,bit-shift,C,Long Integer,Bit Shift,这是我的密码: #include <stdio.h> int main(int argc, char *argv[]) { unsigned long int x = 0; // trying to make x = 2,147,483,648 x = 1 << 31; printf("%lu", x); } #包括 int main(int argc,char*argv[]){ 无符号长整型x=0; //试图使x=2147483

这是我的密码:

#include <stdio.h>

int main(int argc, char *argv[]) {

    unsigned long int x = 0;

    // trying to make x = 2,147,483,648
    x = 1 << 31;

    printf("%lu", x);
}
#包括
int main(int argc,char*argv[]){
无符号长整型x=0;
//试图使x=2147483648

x=1
1
1无论写在哪里:这是错误的!并且正确地计算。提示:最大值不能是偶数。Hu?它表示类型为unsigned long int ULONG_max 4294967295//2^32-1的对象的最大值。根据流行的请求,我试着帮你一点忙。发布链接第1段的最后一句C标准规定“其实现定义值的大小(绝对值)应等于或大于所示值,并带有相同的符号。”。希望重点有所帮助。还请注意,您在代码中按
31
移动,但在文本中按
32
移动。关于“按一次计数关闭”的内容到此为止;这只是将值加倍,并导致windows的未定义行为
unsigned long
。对于POSIX,这是非常正确的,顺便说一句,因为它有64位,可能与写入的位置重复:这是错误的!并且数学正确。提示:最大值不能是偶数。Hu?它表示unsigned long类型的对象的最大值int ULONG_MAX 4294967295//2^32-1根据流行的要求,我试着帮你一点忙。在C标准的链接中,第1段的最后一句陈述了“它们的实现定义值的大小(绝对值)应等于或大于所示值,并带有相同的符号。”。希望重点有所帮助。还要注意的是,您在代码中按
31
移位,但在文本中按
32
移位。关于“off by one count”就到此为止;这只会使值加倍,并导致windows的未定义行为
unsigned long
。对于POSIX,这是非常正确的,顺便说一句。因为它有64位,可能是重复的
x = 1UL << 31;