rawToBits中位的含义?

时间:2013-12-05 01:25:43

标签: r

> as.raw(15)
[1] 0f
> rawToBits(as.raw(15))
[1] 01 01 01 01 00 00 00 00
> rawToBits(0f)
Error: unexpected symbol in "rawToBits(0f"
> rawToBits("0f")
Error in rawToBits("0f") : argument 'x' must be a raw vector
> rawToBits("0x0f")
Error in rawToBits("0x0f") : argument 'x' must be a raw vector

我有一些问题要问:
1)是0f原始类型数据?
2)为什么rawToBits(as.raw(15))无法获得11110000? 15不是11110000
15 = 0f = 1 * 2 ^ 0 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 1 * 2 ^ 3

当您输入0时,[1] 0 1 00 00 00 00 00 00 00中rawToBits(as.raw(1))的含义是什么? 在手册中,我得到a raw vector with entries 0 or 1entries 0 or 1的含义是什么 为什么rawToBits(as.raw(2))不是10 00 00 00 00 00 00 00

1 个答案:

答案 0 :(得分:1)

只输入0f并不会给你一些原始类型。

> str(as.raw(15))
 raw 0f
> str(0f)
Error: unexpected symbol in "str(0f"
> str("0f")
 chr "0f"

如果您想知道这些位是怎么回事,您可以尝试其他一些值来更好地了解发生了什么

> rawToBits(as.raw(1))
[1] 01 00 00 00 00 00 00 00
> rawToBits(as.raw(2))
[1] 00 01 00 00 00 00 00 00
> rawToBits(as.raw(4))
[1] 00 00 01 00 00 00 00 00
> rawToBits(as.raw(8))
[1] 00 00 00 01 00 00 00 00
> rawToBits(as.raw(1 + 2 + 4 + 8))
[1] 01 01 01 01 00 00 00 00
> rawToBits(as.raw(15))
[1] 01 01 01 01 00 00 00 00
相关问题