可以看出x*M和“int t=x;x<<=4;x-=t;”三句对应,这些语句实现了x乘15的功能(左移4位相当于乘以16,然后再减1),因此,M等于15;
y/N与“if(y<0)y+=3;y>>2;”两句对应,功能主要由第二句“y右移2位”实现,它实现了y除以4的功能,因此N是4。而第一句“if(y<0)y+=3;”主要用于对y=–1时进行调整,若不调整,则-1>>2=–1而–1/4=0,两者不等;调整后–1+3=2,2>>2=0,两者相等。
(简答题)
以下是两段C语言代码, 函数arith()是直接用C语言写的,而optarith()是对arith()函数以某个确 定的M和N编译生成的机器代码反编译生成的。根据optarith(),可以推断函数arith()中M和N的值各是多少?
正确答案
答案解析
略
相似试题
(简答题)
考虑以下C语言程序代码: 假设在一个32位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移位,带符号整数采用算术移位。请填写表格,并说明函数func1和func2的功能。
(单选题)
以下对C语言函数的有关描述中,正确的是()
(判断题)
scanf函数是c语言的标准输入函数。
(判断题)
printf函数是c语言的标准输出函数。
(单选题)
在C语言的函数中,()
(填空题)
C语言的格式输出函数是()。
(填空题)
C语言函数返回类型的默认定义类型是()。
(单选题)
在C语言中,函数的隐含存储类别是()
(单选题)
在C语言中,函数的数据类型是指()