/ 整数以外の10進数から2進数への変換 - r、2進数、数値

非整数10進数をバイナリに変換する - r、バイナリ、数値

データフレーム入力(DF)

a
123.213
4343.344
3434.43255
422.45
34534

2進数で必要な結果(16ビット)

機能を試してみました

intTobits
rawTobits

しかし私のために働いていなかった

回答:

回答№1は2

の変換 整数 10進数から2進数への変換については、 この郵便受け。非整数は別の問題です。

浮動小数点10進数の2進表現のために、この関数を試すことができます:

floatToBin <- function(x){
int_part <- floor(x)
dec_part <- x - int_part
int_bin <- R.utils::intToBin(int_part)
dec_bin <- stringr::str_pad(R.utils::intToBin(dec_part * 2^31), 31, pad="0")
sub("[.]?0+$", "", paste0(int_bin, ".", dec_bin))
}

この関数は以下の場合にのみ機能することに注意してください。 負ではない 数字。

これは質問で示された数のための出力です:

nums <- c(123.213, 4343.344, 3434.43255, 422.45, 34534)
sapply(nums, floatToBin)
#[1] "1111011.0011011010000111001010110000001"
#[2] "1000011110111.010110000001000001100010010011"
#[3] "110101101010.0110111010111011100110001100011"
#[4] "110100110.0111001100110011001100110011001"
#[5] "1000011011100110"