• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::


Browsing this Thread:   1 Anonymous Users






C code 如何將24bits truncated 成16bits
#1
初級會員
初級會員


查看用戶資訊
下面是一段程式我一直不懂的是它要把24bit 變成16bits
而大於16bit的它就把它刪掉 所以第一段code它應該要判段它的最高位元的如果為負號而且它比0x8000更負的話就都設定成
0x8000但是這段敘述 if((poserror.i[1] != 0xffff) || !(poserror.b[1] & 0x80)) 怎看都不太對勁,如果我是0xffff7fff 那poserror.b[1]=7f, 那!(poserror.b[1] & 0x80)為
ture所以進去然後被設成0xffff8000;就跟想的不太一樣
有人可以解惑嗎? 這是an718的一段程式應該沒錯 總覺得我不知那裡想錯了。附件有所有程式碼

//第一段code
if (poserror.b[2] & 0x80)// If position error is negative.
{
poserror.b[3] = 0xff; // Sign-extend to 32 bits.

if((poserror.i[1] != 0xffff) || !(poserror.b[1] & 0x80))
{
poserror.i[1] = 0xffff;// Limit error to 16-bit signed
//integer.
poserror.i[0] = 0x8000;
}
else;
}


//第二段code
else
// If position error is positive.
{ poserror.b[3] = 0x00;
if((poserror.i[1] != 0x0000) || (poserror.b[1] & 0x80))
{ poserror.i[1] = 0x0000; // Limit error to 16-bit
// signed integer.
poserror.i[0] = 0x7fff;
}
else;

Attach file:


Link only for registered users

發表於: 2009/4/13 22:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------