導航:首頁 > 數據處理 > 32位數據怎麼樣獲取每一位狀態

32位數據怎麼樣獲取每一位狀態

發布時間:2023-07-11 20:37:57

㈠ 單片機怎麼處理32位數據

#include <stdio.h>

//fl 第一個64位整數的低32位
//fh 第一個64位整數的高32位
//sl 第二個64位整數的低32位
//sh 第二個64位整數的高32位
//ol 結果值64位整數的低32位指針
//oh 結果值64位整數的高32位指針
void i64mul(__int32 fl, __int32 fh,__int32 sl, __int32 sh, __int32 *ol, __int32 *oh)
{
unsigned __int16 f[4]={fl & 0xFFFF,(unsigned __int32)fl >> 16,fh & 0xFFFF,(unsigned __int32)fh >> 16};
unsigned __int16 s[4]={sl & 0xFFFF,(unsigned __int32)sl >> 16,sh & 0xFFFF,(unsigned __int32)sh >> 16};
unsigned __int16 o[8]={};

int nf=0,ns=0,no;

if(f[3]&0x8000)
{
nf=1;
for (int i=0;i<4;i++)
f[i]=~f[i];
for (int i=0;i<4 && !++f[i];i++)
;
}
if(s[3]&0x8000)
{
ns=1;
for (int i=0;i<4;i++)
s[i]=~s[i];
for (int i=0;i<4 && !++s[i];i++)
;
}
no=nf ^ ns;
for (int i=0;i<4;i++)
{
for (int j=0;j<4;j++)
{
unsigned __int32 t=f[j]*s[i]+o[i+j];
o[i+j]=t & 0xFFFF;
t>>=16;
for (int k=i+j+1;k<8;k++)
{

t=t+o[k];
o[k]= t & 0xFFFF;
t>>=16;
}
}
}
if(no)
{
for (int i=0;i<8 && --o[i]==0xFFFF;i++)
;
for (int i=0;i<4;i++)
o[i]=~o[i];
}
*ol=o[0]+((unsigned __int32)o[1]<<16);
*oh=o[2]+((unsigned __int32)o[3]<<16);
}

int main()
{
/*
你的用法為

計算data32l,data32h乘7
i64mul(data32l,data32h,0,7,&data32l,&data32h);

計算data32l,data32h乘_data32l,_data32h 也就是兩個64位數相乘
i64mul(data32l,data32h,_data32l,_data32h,&data32l,&data32h);
*/

//下面是一個在PC機上驗證函數正確的樣本
__int64 o2=0,o,f,s;
f=-1234899233;
s=1567991233;
o=f*s;

i64mul(f,f>>32,s,s>>32, (__int32*)&o2,(__int32*)&o2+1);

if(o==o2)
{
printf("計算正確\n");
}
f=1234899999233;
s=1567999991233;
o=f*s;

i64mul(f,f>>32,s,s>>32, (__int32*)&o2,(__int32*)&o2+1);

if(o==o2)
{
printf("計算正確\n");
}
}

閱讀全文

與32位數據怎麼樣獲取每一位狀態相關的資料

熱點內容
青島有哪些五金代理商 瀏覽:472
節後招工市場怎麼樣 瀏覽:447
為什麼微信小程序麻將別人一直贏 瀏覽:717
利之學姐小程序怎麼購買 瀏覽:731
如何申請代理的農產品 瀏覽:244
為什麼數據開了不能用怎麼辦啊 瀏覽:138
PDS發貨後多久有物流信息 瀏覽:449
一條有用的信息是哪個單詞 瀏覽:749
產品經理牛逼怎麼辦 瀏覽:519
農葯企業如何進入東盟市場 瀏覽:252
什麼叫程序文件引用的表格 瀏覽:584
石林代理記賬服務在哪裡 瀏覽:219
貴陽二手車市場交易市場在哪裡 瀏覽:704
國土資源局查處申請程序為多少天 瀏覽:784
plc如何做暫停程序 瀏覽:561
越南狗市場在什麼地方 瀏覽:398
滎陽有哪些小商品市場 瀏覽:621
產品材質設計是什麼意思 瀏覽:791
小程序測試號有什麼影響 瀏覽:595
廣州艾批發市場在哪裡 瀏覽:364