永发信息网

unsigned long可以取值负值吗

答案:4  悬赏:10  手机版
解决时间 2021-04-07 07:23
  • 提问者网友:呐年旧曙光
  • 2021-04-07 03:57
unsigned long n=-1是什么意思 不是说无符号吗?
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-04-07 05:05
可以赋给负值。i=-1; 存放为 0xffffffff。按无符号数输出为 4294967295。按有符号数输出为-1.

#include<stdio.h>
main(){
unsigned long i=-1;
printf("%u %#x",i,i);
return 0;
}

输出:
4294967295 0xffffffff
全部回答
  • 1楼网友:拜訪者
  • 2021-04-07 08:14
可以是可以。不过会自动转换为别的值
  • 2楼网友:傲气稳了全场
  • 2021-04-07 06:44
在编辑器里面打印出来就知道了。是2^32-1,也就是4294967295
  • 3楼网友:空山清雨
  • 2021-04-07 05:45

可以=赋值运算符,  但是要加上强制转换在c中如int 要转为long 那么这样转:

int num1 = 5;

long num2 = (int)num1;

在c++你也可以用c的方式转换也可以用c++的方式:

int num1 = 5;

long num2 = static_cast<int>(num1);

精度的转换 ,会不可避免的造成精度的丢失。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯