-1UL<<-1结果是多少?

FFSB 2010-08-23 04:45:50
我的程序到这儿就崩溃!
...全文
645 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningweidong 2010-08-23
  • 打赏
  • 举报
回复
你到底想干什么啊?只是数值计算,换一种方法啊。
旭子 2010-08-23
  • 打赏
  • 举报
回复
可以看看编译器源码,在算符运算中对于移位的处理,不同的编译器不大一样
liao05050075 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ffsb 的回复:]

引用 4 楼 liao05050075 的回复:
<<-1本身就是不合法的

有什么根据吗?
[/Quote]
看《C陷阱与缺陷》 7.5移位运算符,p110: n<<32 或 n<<-1是非法的
东大坡居士 2010-08-23
  • 打赏
  • 举报
回复
学习了~~~~~~
ayw215 2010-08-23
  • 打赏
  • 举报
回复
1>.\main.cpp(46) : warning C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型
1>.\main.cpp(46) : warning C4293: “<<”: Shift 计数为负或过大,其行为未定义
某某9 2010-08-23
  • 打赏
  • 举报
回复
如果是移位的话
<< -1也太大了
CJacky++ 2010-08-23
  • 打赏
  • 举报
回复
<< -1是干什么用的?
pengzhixi 2010-08-23
  • 打赏
  • 举报
回复
If the value of the right operand is negative or is
greater than or equal to the width of the promoted left operand, the behavior is undefined.
FFSB 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liao05050075 的回复:]
<<-1本身就是不合法的
[/Quote]
有什么根据吗?
liao05050075 2010-08-23
  • 打赏
  • 举报
回复
<<-1本身就是不合法的
xiaohuh421 2010-08-23
  • 打赏
  • 举报
回复
你这句话有什么特别的意义吗?
你是要实现个什么,还是要验证什么,先说说你的思想.
可能你这个语句是合法的,但是一点都不能体现出你的意图,这种语句是最好避免写的
赵4老师 2010-08-23
  • 打赏
  • 举报
回复
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
FFSB 2010-08-23
  • 打赏
  • 举报
回复
是在gc++arm9

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧