【发布时间】:2021-02-23 20:46:21
【问题描述】:
我正在从 ADC IC 接收 16 位 2s 补码或带符号二进制文件。当我收到数据时,它看起来像这样
时间戳、IP、频率、传感器、数据
132493498543616929, 10.0.0.236, 600.000, 321, -8739
132493498543626902、10.0.0.236、600.000、321、-8739
132493498543636875, 10.0.0.236, 600.000, 321, -8739
132493498543636875, 10.0.0.236, 600.000, 321, -13108
132493498543656828, 10.0.0.236, 600.000, 321, -8739
132493498543666795, 10.0.0.236, 600.000, 321, -21846
132493498543676768, 10.0.0.236, 600.000, 321, -21846
132493498543676768, 10.0.0.236, 600.000, 321, -21846
132493498543686741, 10.0.0.236, 600.000, 321, -21846
我想将其转换为签名二进制我的最小可重现代码如下
library(binaryLogic)
as.binary(-21846, signed=TRUE, logic=FALSE)
[1] 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
这给了我想要的二进制值,但是,当我使用它时
Data_as_Binary <- as.binary(-21846, signed=TRUE, logic=FALSE)
Data_as_Binary
TRUE
FALSE
TRUE
FALSE
TRUE
FALSE
我有 16000 多个值需要在数据框中进行转换,当我
使用 mutate 或 tidyverse 中的任何东西它会返回一个列表 我如何将它折叠成一个变量
将其转换为十六进制没问题,但我必须将其转换为二进制所以现在我已将其转换为二进制,但我需要在最低有效位上添加 1 如何在数据帧中执行此操作?
谢谢阿曼达
【问题讨论】:
-
列表是存储它们的唯一最佳方式。您可以将它们折叠为字符串,但这需要更多的计算才能将它们转换回二进制
-
你知道如何将二进制中的 1 添加到二进制数中吗?这是需要做的最后一步,我仍然不确定如何执行该操作
-
二进制数加1是什么意思?
-
如果从 2s 补码/有符号二进制到原始数据,我必须在此二进制数的 LSB 中添加 1,因此最后一步是添加 1