日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

16位浮点 c语言,C语言中的16位浮点乘法

發(fā)布時(shí)間:2025/3/12 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 16位浮点 c语言,C语言中的16位浮点乘法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我正在開(kāi)發(fā)一個(gè)小項(xiàng)目,我需要浮點(diǎn)乘法和16位浮點(diǎn)數(shù)(半精度)。不幸的是,我遇到了算法的一些問(wèn)題:

示例輸出

1 * 5 = 5

2 * 5 = 10

3 * 5 = 14.5

4 * 5 = 20

5 * 5 = 24.5

100 * 4 = 100

100 * 5 = 482

源代碼

const int bits = 16;

const int exponent_length = 5;

const int fraction_length = 10;

const int bias = pow(2, exponent_length - 1) - 1;

const int exponent_mask = ((1 << 5) - 1) << fraction_length;

const int fraction_mask = (1 << fraction_length) - 1;

const int hidden_bit = (1 << 10); // Was 1 << 11 before update 1

int float_mul(int f1, int f2) {

int res_exp = 0;

int res_frac = 0;

int result = 0;

int exp1 = (f1 & exponent_mask) >> fraction_length;

int exp2 = (f2 & exponent_mask) >> fraction_length;

int frac1 = (f1 & fraction_mask) | hidden_bit;

int frac2 = (f2 & fraction_mask) | hidden_bit;

// Add exponents

res_exp = exp1 + exp2 - bias; // Remove double bias

// Multiply significants

res_frac = frac1 * frac2; // 11 bit * 11 bit → 22 bit!

// Shift 22bit int right to fit into 10 bit

if (highest_bit_pos(res_mant) == 21) {

res_mant >>= 11;

res_exp += 1;

} else {

res_mant >>= 10;

}

res_frac &= ~hidden_bit; // Remove hidden bit

// Construct float

return (res_exp << bits - exponent_length - 1) | res_frac;

}

順便說(shuō)一下:我將浮點(diǎn)數(shù)存儲(chǔ)在整數(shù)中,因?yàn)槲視?huì)嘗試將此代碼移植到某種沒(méi)有浮點(diǎn)操作的匯編程序。

問(wèn)題

為什么代碼僅適用于某些值?我忘記了一些規(guī)范化或類似的嗎?或者它只是偶然起作用?

免責(zé)聲明:我不是CompSci學(xué)生,它是一個(gè)休閑項(xiàng)目;)

更新#1

感謝Eric Postpischil的評(píng)論,我注意到代碼存在一個(gè)問(wèn)題:hidden_bit標(biāo)志被一個(gè)人關(guān)閉(應(yīng)該是1 << 10)。有了這個(gè)改變,我不再獲得小數(shù)位數(shù),但仍有一些計(jì)算結(jié)果(例如3?3=20)。我假設(shè),它是res_frac轉(zhuǎn)變,如答案中所描述的那樣。

更新#2

代碼的第二個(gè)問(wèn)題確實(shí)是res_frac轉(zhuǎn)移。在更新#1之后,當(dāng)?shù)玫絝rac1 * frac2的22位結(jié)果時(shí),我得到了錯(cuò)誤的結(jié)果。我已使用更正的班次語(yǔ)句更新了上面的代碼。感謝所有的評(píng)論和回答! :)

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的16位浮点 c语言,C语言中的16位浮点乘法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 大奶一区| 波多野结衣办公室33分钟 | 凸凹人妻人人澡人人添 | 揄拍自拍 | 奇米影视亚洲 | 三级影片在线免费观看 | 黄色av日韩| 91美女免费看 | 女教师痴汉调教hd中字 | 欧美亚洲另类图片 | av看片网站| 午夜肉伦伦 | 玩弄丰满少妇xxxxx性多毛 | 成人免费视频国产免费 | 欧美色图综合网 | 久久裸体视频 | 成人av图片 | 亚洲久视频| 青青草华人在线 | 日韩亚洲在线 | 正在播放av | 喷水少妇 | 国产福利短视频 | 亚洲乱色熟女一区二区 | 久久久久免费 | 久久一道本 | 欧美sm凌虐视频网站 | 日本视频黄色 | 91精品久久久久久 | 天天av天天干 | 国产成人福利视频 | 国产色图视频 | 欧美成人精品一区二区男人看 | www.欧美.com| 欧美精品在线免费 | 亚洲精品一区在线观看 | 欧美性猛交ⅹxxx乱大交3 | 日韩夫妻性生活 | 中文天堂在线视频 | 韩国女主播一区二区 | 日本特黄一级大片 | 欧美成人视 | 熟女一区二区三区四区 | 欧美自拍偷拍第一页 | 青青草亚洲| 成人激情视频网站 | 欧美四虎| 三级三级久久三级久久18 | 校园sm主奴调教1v1罚视频 | 国产在线看片 | 亚洲精品美女网站 | 国产成人毛毛毛片 | 国产日韩视频在线 | 久久久久久亚洲av无码专区 | 手机在线看片国产 | 国产又粗又黄又爽的视频 | 宅男噜噜噜666在线观看 | 色欲久久久天天天综合网精品 | 亚洲精品激情视频 | 国产免费看 | 齐天大性床战铁扇公主 | 欧美一区三区二区在线观看 | 午夜三级网站 | 国产精品日韩一区二区三区 | 国产精品久久久久久久妇 | 国产亚洲成人精品 | 天天干天天舔天天射 | 国产一区二区视频免费 | 蜜桃精品噜噜噜成人av | 国产激情av在线 | 一级片av | 国产成人一区 | 香蕉视频日本 | 亚洲欧美视频一区二区 | 欧美精品一区二区三区四区五区 | 视频在线一区二区三区 | 美女91网站| 性综艺节目av在线播放 | 国产精品一区二区三区久久久 | 亚洲人成人一区二区在线观看 | 伊人爱爱网 | 国产综合自拍 | 折磨小男生性器羞耻的故事 | 韩日一区 | 99精彩视频 | 91精品久久香蕉国产线看观看 | 窝窝午夜视频 | 亚洲影院中文字幕 | 已满十八岁免费观看全集动漫 | 91亚色| 锦绣未央在线观看 | 边吃奶边添下面好爽 | 麻豆免费观看视频 | 精品国产一二 | 日韩av无码中文字幕 | 亚洲精品视频三区 | 国产一在线观看 | 国产精品日本 | 男人的天堂一区二区 |