社区
C++ 语言
帖子详情
帮忙解释一下这个程序段
charlie790801
2004-11-21 03:46:56
#include "iostream.h"
void main()
{
unsigned int i = 3;
cout<<i*-1<<endl;
}
我算得和执行的结果怎么不一样, 晕
...全文
138
12
打赏
收藏
帮忙解释一下这个程序段
#include "iostream.h" void main() { unsigned int i = 3; cout<<i*-1<<endl; } 我算得和执行的结果怎么不一样, 晕
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dokee
2004-11-21
打赏
举报
回复
补码的知识~
无符号的65535相当于有符号的-1
所以-3相当于无符号的65533
oyljerry
2004-11-21
打赏
举报
回复
数据类型转换
charlie790801
2004-11-21
打赏
举报
回复
正如huailt兄所解释的一样,tc下编译是-3,这个清楚了!
至于vc下编译,不会出错,是wentiboy(与人)兄所说的VC是32位的,所以结果是2^32-3,但是我不知道为什么会是这个答案!麻烦解释下
huailt
2004-11-21
打赏
举报
回复
VC下unsigned优先于int,所以必须转为无符号..可是结果却是有符号的.产生冲突所以出现错误.
TC下int优先unsigned,就是有符号的-3了
charlie790801
2004-11-21
打赏
举报
回复
我起先理解成(2^32-1) 然后再*3了!
charlie790801
2004-11-21
打赏
举报
回复
wentiboy兄,可否解释一下,为什么是减去3啊?
beepbug
2004-11-21
打赏
举报
回复
答案是-3符合C经典。
在“cout<<i*-1<<endl;”里,C先做表达式“i*-1”。按C规则当一无符号数与一有符号数用一运算符关联时,先将无符号数转为符号数。
各种C编译器有差异,是很常见的事。
rice_v
2004-11-21
打赏
举报
回复
不同类型的操作数运算时,运算结果的类型为最高级别类型。你所说的运算中unsigned的级别高于int
wentiboy
2004-11-21
打赏
举报
回复
tc是16位的,所以结果是2^16-3
VC是32位的,所以结果是2^32-3
cliangb
2004-11-21
打赏
举报
回复
那只能说两个编译器的问题,我上面说的是VC下的,VC下肯定不是-3,因为类型的问题,
charlie790801
2004-11-21
打赏
举报
回复
不是这个答案 . 在tc下面是-3, 在vc下面不是-3, 你可以test一下!
cliangb
2004-11-21
打赏
举报
回复
因为i是无符号整型,显示不了负数了,
unsigned int i = 3;
int j= i*-1;
cout<<j<<endl;
这样就是-3罗
帮忙
看看这段程序啊
帮忙
看看这段程序啊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity san isport(clk:in std_logic; sanut std_logic_vector(7 downto 0));end;architec
c语言中ch <='9' && ch>='0'是什么意思,能
帮忙
解释一下
这段c语言什么意思吗?
你好:程序打印效果如下:7 -112 //这里是1和2 ,不是122.00.600程序解释:#include //包含头文件#define T(c)(((c)>='0')&&((c)void f1(char ch) //f1功能函数{switch(ch){case '0':...
帮忙
算一下可以吗
计算机系统使用主频为3.7GHz的CPU执行一个应用程序时,这段程序中相关指令的统计情况如题后所示。假设该程序由1000个指令构成,程序执行过程中将多次占用64位并行总线向外围设备累计共输出3.2KB数据,系统总线的工作...
从一段c程序的优化说起
今天一个朋友找到我,说他写了一个图像方面的c程序,效率不太理想,寻求我的
帮忙
,我乃热心之人,故答应之。下面是其代码段,大家共赏: 大致浏览了一下,有以下几个问题 1、函数没有对其输入值进行应有的...
代码看不懂?ChatGPT 帮你解释,详细到爆!
偷个懒,用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好?网上看到一段代码,不知道是什么含义?输入 ChatGPT 帮我们解释下。生信宝典 1: 下面是一段 Linux 代码,请帮我...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章