Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Specyficzne dla firmy Microsoft
Generuje rozszerzoną wersję x64 instrukcji Konwertuj liczbę zmiennoprzecinkową o pojedynczej precyzji skalarnej na 64-bitową liczbę całkowitą (cvtss2si
).
Składnia
__int64 _mm_cvtss_si64x(
__m128 value
);
Parametry
wartość
[in] Struktura zawierająca __m128
wartości zmiennoprzecinkowe.
Wartość zwracana
64-bitowa liczba całkowita, wynik konwersji pierwszej wartości zmiennoprzecinkowej na liczbę całkowitą.
Wymagania
Nieodłączny | Architektura |
---|---|
_mm_cvtss_si64x |
x64 |
Plik<nagłówka intrin.h>
Uwagi
Pierwszy element wartości struktury jest konwertowany na liczbę całkowitą i zwracany. Bity kontrolek zaokrąglania w usłudze MXCSR są używane do określania zachowania zaokrąglania. Domyślny tryb zaokrąglania jest zaokrąglony do najbliższej, zaokrąglając do liczby parzystej, jeśli część dziesiętna wynosi 0,5. __m128
Ponieważ struktura reprezentuje rejestr XMM, funkcja wewnętrzna pobiera wartość z rejestru XMM i zapisuje ją w pamięci systemowej.
Ta rutyna jest dostępna tylko jako wewnętrzna.
Przykład
// _mm_cvtss_si64x.cpp
// processor: x64
#include <intrin.h>
#include <stdio.h>
#pragma intrinsic(_mm_cvtss_si64x)
int main()
{
__m128 a;
__int64 b = 54;
// _mm_load_ps requires an aligned buffer.
__declspec(align(16)) float af[4] =
{ 101.25, 200.75, 300.5, 400.5 };
// Load a with the floating point values.
// The values will be copied to the XMM registers.
a = _mm_load_ps(af);
// Extract the first element of a and convert to an integer
b = _mm_cvtss_si64x(a);
printf_s("%I64d\n", b);
}
101
END Microsoft Specific