如何使用整数工作添加十六进制值?

时间:2015-11-27 10:22:42

标签: c hex literals

在下面的代码中,变量' b'持有价值' 133'这很直截了当。如何变量' a' ?为什么' 131' ?

我看到唯一的区别是' 015'而不是' 15'。

#include<stdio.h>
int main()
{
  int a,b,c;
  a=015 + 0x71 +5;
  printf("%d\n",a);  // prints '131'
  b=15 + 0x71 +5;
  printf("%d\n",b);  // prints '133'
}

有人能让我知道这里发生了什么吗?

2 个答案:

答案 0 :(得分:7)

前导零表示该数字以八进制表示。八进制中的015是十进制表示法中的13。

  

octal-literal是数字零(0),后跟零个或多个八进制数字(0,1,2,3,4,5,6,7)

(来自cppreference

答案 1 :(得分:3)

onChangeTest: function() { $(document).ready(() => { var _widthValue = document.getElementById(this.inputid).value; }); } 实际上是八进制数系统表示的指示符,所以

015表示015

所以

1x8^1 + 5*8^0 = 13

严格来说意味着 a=015 + 0x71 +5;