C 基礎 一些基本型別概述

2021-09-25 19:23:14 字數 1184 閱讀 5098

開門見山,前段時間學習opencv的fast演算法,中間有很多sse2的指令集,深受其惑。下面我把學習過程中學到的一些指令集介紹給大家,希望能對大家有所幫助!

#include
__m128i被稱為128bits的整數,對其進行賦值時,可以呼叫__m128i_mm_set1_epi8或者__m128i_mm_set1_epi816等,前者就是把128bits設定為16個8bits的整數值,後乙個例子就是把128bits設定成8個16bits的整數值。

_mm_loadu_si128表示:loads 128-bit value;即載入128位值。

_mm_max_epu8 (a,b)表示:比較a和b中對應的無符號的8bits的整數,取其較大值,重複這個過程16次。即:r0=max(a0,b0),...,r15=max(a15,b15)

_mm_min_epi8(a,b)表示:大體意思同上,不同的是這次比較的是有符號的8bits的整數。

_mm_setzero_si128表示:將128bits的值都賦值為0.

_mm_subs_epu8(a,b)表示:a和b中對應的8bits數相減,r0= unsignedsaturate(a0-b0),...,r15= unsignedsaturate(a15 - b15)

_mm_adds_epi8(a,b)表示:a和b中對應的8bits數相加,r0=singedsaturate(a0+b0),...,r15=singedsaturate(a15+b15).

_mm_unpackhi_epi64(a,b)表示:a和b的高64位交錯,低64位捨去。

_mm_srli_si128(a,imm)表示:將a進行邏輯右移imm位,高位填充0。

_mm_cvtsi128_si32(a)表示:將a的低32位賦值給乙個32bits的整數,返回值為r=a0;

_mm_xor_si128(a,b)表示:將a和b進行按位異或,即r=a^b。

_mm_or_si128(a,b)表示:將a和b進行或運算,即r=a|b。

_mm_and_si128(a,b)表示:將a和b進行與運算,即r=a&b。

_mm_cmpgt_epi8(a,b)表示:分別比較a的每個8bits整數是否大於b的對應位置的8bits整數,若大於,則返回0xffff,否則返回0x0。

即r0=(a0>b0)?0xff:0x0  r1=(a1>b1)?0xff:0x0...r15=(a15>b15)?0xff:0x0

關於c 基本型別的一些知識點

c 程式語言 第四版 6.2章節 1 bool值轉成整數時,true轉為1false轉為0 整數轉成bool值時,非0為true,0為false。2 指標可以隱式地轉成bool,非空指標為true,nullptr為false。如 if p 等價於 if p nullptr 3 字元型別 char c...

c 基本型別

資料型別分為兩種 值型別和引用型別,這兩種型別的物件在記憶體的儲存方式不同。定義 引用型別 表示操作的物件是同乙個,即當傳乙個引數給另乙個方法時,在另乙個方法中改變這個變數的值,那麼呼叫這個方法時傳入的值也將發生變化。值型別 表示複製乙個當前變數傳遞給方法,在方法中改變這個值時,最初生命的變數值不會...

C 基本型別

const限定符 浮點數sizeof 部分問題總結 浮點型 float,double,long double 根據寬度width來排序 char short int long long long 寬度,表示範圍 很多系統直接用最小長度,short為16位,long為32位,但int可以有很多選擇 1...