PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

  回應
 
主題工具
拿破崙波拿巴
*停權中*
 
拿破崙波拿巴的大頭照
 

加入日期: Dec 2018
文章: 53
關於半精度浮點問題

有沒有 半精度浮點 (Half float) 轉換 int16_t 的方法
     
      
舊 2019-04-13, 11:36 AM #1
回應時引用此文章
拿破崙波拿巴離線中  
冬之炎陽
Advance Member
 

加入日期: Apr 2005
文章: 431
除了每天支支叫外
google 一下 IEEE 754-1985 的規範可以嗎?
 
舊 2019-04-13, 01:42 PM #2
回應時引用此文章
冬之炎陽離線中  
拿破崙波拿巴
*停權中*
 
拿破崙波拿巴的大頭照
 

加入日期: Dec 2018
文章: 53
引用:
作者冬之炎陽
除了每天支支叫外
google 一下 IEEE 754-1985 的規範可以嗎?


支歸支,浮點歸浮點 不懂不要亂回答可以嗎?
你不要又要來說 Linux 是 GCC 寫的
舊 2019-04-13, 03:33 PM #3
回應時引用此文章
拿破崙波拿巴離線中  
冬之炎陽
Advance Member
 

加入日期: Apr 2005
文章: 431
都告訴你去看 spec 了, 裡面就有答案了
還是不會嗎?
可以再問, 我會告訴你怎麼做的, 我可是很少教人這種junior的問題

對了 你的水土散熱器進化到哪一版了啊?

此文章於 2019-04-13 06:09 PM 被 冬之炎陽 編輯.
舊 2019-04-13, 06:08 PM #4
回應時引用此文章
冬之炎陽離線中  
拿破崙波拿巴
*停權中*
 
拿破崙波拿巴的大頭照
 

加入日期: Dec 2018
文章: 53
引用:
作者冬之炎陽
都告訴你去看 spec 了, 裡面就有答案了
還是不會嗎?
可以再問, 我會告訴你怎麼做的, 我可是很少教人這種junior的問題

對了 你的水土散熱器進化到哪一版了啊?


有答案

意思就是說 你知道就對了

那測試一下 看你是真知道 還是假知道


這段你看得懂嗎
代碼:
unsigned int2hfloat(int x)
{
  unsigned sign = x < 0;
  unsigned absx = ((unsigned)x ^ -sign) + sign; // safe abs(x)
  unsigned tmp = absx, manbits = 0;
  int exp = 0, truncated = 0;

  // calculate the number of bits needed for the mantissa
  while (tmp)
  {
    tmp >>= 1;
    manbits++;
  }

  // half-precision floats have 11 bits in the mantissa.
  // truncate the excess or insert the lacking 0s until there are 11.
  if (manbits)
  {
    exp = 10; // exp bias because 1.0 is at bit position 10
    while (manbits > 11)
    {
      truncated |= absx & 1;
      absx >>= 1;
      manbits--;
      exp++;
    }
    while (manbits < 11)
    {
      absx <<= 1;
      manbits++;
      exp--;
    }
  }

  if (exp + truncated > 15)
  {
    // absx was too big, force it to +/- infinity
    exp = 31; // special infinity value
    absx = 0;
  }
  else if (manbits)
  {
    // normal case, absx > 0
    exp += 15; // bias the exponent
  }

  return (sign << 15) | ((unsigned)exp << 10) | (absx & ((1u<<10)-1));
}


半精度浮點是幾 byte

你知道不知道 我想問的是什麼東西

此文章於 2019-04-13 07:20 PM 被 拿破崙波拿巴 編輯.
舊 2019-04-13, 07:17 PM #5
回應時引用此文章
拿破崙波拿巴離線中  
冬之炎陽
Advance Member
 

加入日期: Apr 2005
文章: 431
這種演算法網路上隨便找就一大堆
老是幹這種沒價值的事情
還用 android 2 要跑 ruby
有什麼好屁的
舊 2019-04-13, 07:55 PM #6
回應時引用此文章
冬之炎陽離線中  
拿破崙波拿巴
*停權中*
 
拿破崙波拿巴的大頭照
 

加入日期: Dec 2018
文章: 53
引用:
作者冬之炎陽
這種演算法網路上隨便找就一大堆
老是幹這種沒價值的事情
還用 android 2 要跑 ruby
有什麼好屁的


所以你根本就來亂的嘛

上面我貼出來的是 int 轉 半精度浮點
我想知道的是 半精度浮點 轉 int

你說找一大堆 那你找來給我看看
舊 2019-04-13, 08:09 PM #7
回應時引用此文章
拿破崙波拿巴離線中  
冬之炎陽
Advance Member
 

加入日期: Apr 2005
文章: 431
引用:
作者拿破崙波拿巴
所以你根本就來亂的嘛

上面我貼出來的是 int 轉 半精度浮點
我想知道的是 半精度浮點 轉 int

你說找一大堆 那你找來給我看看


我剛剛就講了, 這種code網路上一堆
去看懂 IEEE 754-1985 規範就會寫float to int了
根本就不需要去找別人寫的東西
這還是念資工大2的回家功課
連結貼給你
https://en.wikipedia.org/wiki/IEEE_754-1985

問這種超基本的問題
我不覺得你適合當工程師

此文章於 2019-04-13 08:48 PM 被 冬之炎陽 編輯.
舊 2019-04-13, 08:40 PM #8
回應時引用此文章
冬之炎陽離線中  
拿破崙波拿巴
*停權中*
 
拿破崙波拿巴的大頭照
 

加入日期: Dec 2018
文章: 53
引用:
作者冬之炎陽
我剛剛就講了, 這種code網路上一堆
去看懂 IEEE 754-1985 規範就會寫float to int了
根本就不需要去找別人寫的東西
這還是念資工大2的回家功課
連結貼給你
https://en.wikipedia.org/wiki/IEEE_754-1985

問這種超基本的問題
我不覺得你適合當工程師


你是來亂的沒錯阿 半精度浮點在哪 要不要我提示你一下

https://zh.wikipedia.org/wiki/%E5%8...%82%B9%E6%95%B0

你貼的 32-bit / 64-bit 的給我幹嘛 我早就看爛了



32-bit / 64-bit 轉換我還用你教阿

此文章於 2019-04-13 09:08 PM 被 拿破崙波拿巴 編輯.
舊 2019-04-13, 09:05 PM #9
回應時引用此文章
拿破崙波拿巴離線中  
冬之炎陽
Advance Member
 

加入日期: Apr 2005
文章: 431
god bless your boss
舊 2019-04-13, 09:27 PM #10
回應時引用此文章
冬之炎陽離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是01:43 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2024。