移位
main()
{char x=040;
printf ("%d\n",x=x<<1);
}
请问这个程序计算结果为何为64?
我的算法如下,不知错在哪里?
八进制数040=100000然后左移一位不是变成000000了吗?
main()
{char x=040;
printf ("%d\n",x=x<<1);
}
请问这个程序计算结果为何为64?
我的算法如下,不知错在哪里?
八进制数040=100000然后左移一位不是变成000000了吗?
个人意见:
你定义的是char,用整数打出的是他的ASCII码,ASCII码没有负数,所以应该没有符号位,所以应该没有溢出吧