2017-04-25 38 views
-1

如何將int/long轉換爲字節向量?我能想出的最好的是如何將int/long轉換爲字節向量?

packBits(intToBits(63758236), "raw") 

有沒有辦法

  1. 做沒有轉換爲中間位?
  2. 指定結果字節的順序(LSB或MSB)?
+1

關於(1),如果你關心的是效率,這兩種功能是用C語言實現的(['intToBits']( https://github.com/wch/r-source/blob/af7f52f70101960861e5d995d3a4bec010bc89e6/src/main/raw.c#L124-L142),['packBits'](https://github.com/wch/r-source /blob/af7f52f70101960861e5d995d3a4bec010bc89e6/src/main/raw.c#L144-L194)),所以我不會擔心中間轉換太多。 – nrussell

回答

-1

嗯,這是有點醜,但我結束了寫這個

idToCacheId <- function(id) { 
    if (id > 0) { 
    x = rev(packBits(intToBits(id), "raw")) 
    return(gsub('=+', '', base64enc::base64encode(x[Position(function(x) x != 0, x):length(x)]))) 
    } else 
    return("") 
}