質問

閉じられた昨年

GCCはAMD64の128ビットINTをサポートしていますか?

定義方法?

Scanf / Printfを使って読み書きする方法?

役に立ちましたか?

解決

gcc は、組み込みの__int128unsigned __int128型をサポートしています(64-ビットプラットフォームのみ)、しかし、128ビット整数のフォーマットのサポートはlibcでは一般的ではありません。

注:<stdint.h>は、GCC4.6の前のバージョンの__int128_t__uint128_tを定義します。関連項目はGCCに128ビット整数がありますか? GCC / CLANG / ICCバージョンの表のための。

__uint128_tが定義されているかどうかを知る方法__int128

他のヒント

void f(__int128* res, __int128* op1, __int128* op2)
{
    *res = *op1 + *op2;
}
.

test.cに保存し、でコンパイルします。

$ gcc -c -O3 test.c
$ objdump -d -M intel test.o
.

あなたは取得します:

mov    rcx, rdx
mov    rax, [rsi]
mov    rdx, [rsi+0x8]

add    rax, [rcx]
adc    rdx, [rcx+0x8]

mov    [rdi], rax
mov    [rdi+0x8], rdx
.

__int128タイプは、2つの命令を使用して2つの命令を使用して2つの命令を使用する標準的なビッグINTパターンを使用して、2つの命令を使用してそれらを操作することによってサポートされています。>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top