比较两个十六进制值时,如果一个比另一个短,我会填写什么更短?

时间:2016-01-26 18:09:17

标签: byte bits

如果没有多大意义,请注意令人困惑的标题。 我对系统和C一般都是新手,所以当涉及到位/字节/十六进制时,我在旁边试图找出它。

我的问题是,如果我有一个字节顺序,请说:

0x01020304我想使用&使用0xFF的逻辑运算符,前者中的哪些字节是比较FF,因为它是一个更短的字节?

我想我记得MSB向右移动,如在FF中,然后在左边用0填充,以便将0与0x010203进行比较,其中FF将与04进行比较。

我是否认为这是正确的,还是以其他方式填写此比较?

1 个答案:

答案 0 :(得分:0)

这是一个提示:
0xFF与0x000000FF相同。

所以......

  int f1 = 0x01020304; (16909060 in decimal)
  int f2 = 0x000000ff; (255 in decimal)
  int f3 = f1&f2; (gives us 4 in decimal)

与此代码相同:

  int f1 = 0x01020304; (16909060 in decimal)
  int f2 = 0xff; (255 in decimal)
  int f3 = f1&f2; (gives us 4 in decimal)

希望有所帮助。

换句话说:是的,你的考虑是正确的。