2016-06-11 117 views
-6

我来到acrros这一行:Java - 0xXXXc是什么意思?

int b = (0x001c >> 1) 

而且我不知道这是什么小c旁边0x001手段。 我知道0x为十六进制但我从未见过此c之前..

由于

+8

你确定它不只是十六进制数字C 2 – Arc676

+0

是的,你对我的错误。 – Noam

回答

0

在基座10中,有十位数字:0,1,2,3,4,5,6 ,7,8,9

在基座2,仅存在两个:0,1

在十六进制(基数16),有16:0-9和A,b,C,d,电子f。有时使用大写字母:两者都很好。

所以0x001c 装置为0x1 ×16 +位于0xC X 1 = 16 + 12 = 28

0

此这里

int b = (0x001c >> 1) 

可以分析为:

  1. INT b被声明的名称b中的整数类型的变量,这将是在相同的值初始化...
  2. 0x001c是一个数字,但在一个hexadecimal format
  3. 表示
  4. >>shift operator

所以b与操作的结果初始化0x001c >> 1迟早你会发现,这种操作仅仅是一个除以2

总结:

这条线是创造与价值14

1

C初始化一个整型变量是十六进制C这是12(十进制)。

在你的情况下,0x001C右移1

换句话说28(十进制),向右移动1位将是14(十进制)。

在二进制,

0...00 00011100 >> 00000001

使..

0...00 00001110(in binary)

那就是:14(十进制)或E(十六进制)