需要解释一下用c做的数学计算吗
我在c上找到了以下代码需要解释一下用c做的数学计算吗,c,C,我在c上找到了以下代码 #include<stdio.h> int main(){ int a; a=015 + 0x71 +5; printf("%d",a); return 0; } #包括 int main(){ INTA; a=015+0x71+5; printf(“%d”,a); 返回0; } 当我编译它时,它给出了131作为答案。但我无法找出它是如何在C中发生的,以0开头的数字是八进制(以8为基数),以0x开头的
#include<stdio.h>
int main(){
int a;
a=015 + 0x71 +5;
printf("%d",a);
return 0;
}
#包括
int main(){
INTA;
a=015+0x71+5;
printf(“%d”,a);
返回0;
}
当我编译它时,它给出了131作为答案。但我无法找出它是如何在C中发生的,以
0开头的数字是八进制(以8为基数),以0x
开头的数字是十六进制(以16为基数)
015+0x71+5
是158+7116+5=(1•8+5)+(7•16+1)+5=13+113+5=131。八进制015
是10进制值13
十六进制值0x71
是10进制值113
5
以10为基数
将13+113+5
相加,得到131
八进制、十六进制、十进制。看看这个015+0x71+5
以三种不同的基数表示数字。它所缺少的只是一个二进制文本。@Shawn,但在标准C.8+5+7*16+1+5=131中当然没有二进制文本。您希望得到什么值?为什么?