R 中表示整数的位

it_*_*ure 2 r

R使用32位整数,4个字节(4*8=32,1个字节=8位),最大整数为2^31-1= 2147483647。

intToBits(125)
[1] 01 00 01 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Run Code Online (Sandbox Code Playgroud)

有64位,不是32位,32对00或01(32*2=64),为什么?在手册中,一个带有条目0或1的原始向量,条目0或1的含义是什么?

在我看来,intToBits(125)会生成
10111110 00000000 00000000 00000000 #it is 32 bits
not
01 00 01 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00。#是64位的

And*_*lin 5

函数intToBits返回 32 个数字,每个0数字或1

> length(intToBits(125))
[1] 32
Run Code Online (Sandbox Code Playgroud)

混乱是由 的raw输出类型的十六进制表示引起的intToBits

> intToBits(125)[3]
[1] 01
Run Code Online (Sandbox Code Playgroud)

数字raw或显示为或010001

  • 只是对此答案的补充:如果您想要二进制表示而不是十六进制表示,请使用 `as.numeric(intToBits(125))` (3认同)