0
次のCコードのバージョン2をRで再現したいと考えています 問題は、RにはCの '(unsigned int)'と同等の操作がないようです。 (Rには符号なし整数はありません) 。いくつかのパッケージを調べましたが、簡単には 見つけられませんでした。手動で(または関数を使用して)変換を行うには、.Machine$integer.max + 1
程度を追加する必要がありますか? ...(それはおそらく、Cのコードを再現するために、その後、64ビットで必要です)Rで '(unsigned int)'演算を得るには?
#include <stdio.h>
#include <stdint.h>
int II1 = -1;
int II2 = -2;
int_least64_t a = 1403580;
int_least64_t b = 810728;
int main()
{
int_least64_t p;
/* Version 1 */
p = a * II2 - b * II1;
printf("%lld\n", (int_least64_t)(p)); /* -1996432 */
/* Version 2 */
p = a * (unsigned int)II2 - b * (unsigned int)II1;
printf("%lld\n", (int_least64_t)(p)); /* 2546279949371760 */
return 0;
}
これはRにバージョン1を再生する(代わりに64のおそらく32ビット):
II1 <- -1
II2 <- -2
a <- 1403580
b <- 810728
a * II2 - b * II1
この[SO Post](http://stackoverflow.com/questions/14395421/unsigned-int-in-c-function)を参考にしてください。 – G5W
私は実際にその投稿を見ましたが、それは役に立ちませんでした。 Cから値を返す必要はありません。私はCを複製したいと思います。 –
私はint64パッケージのuint64への参照を意味していました。それは良いことではなかった? – G5W