青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

戰(zhàn)魂小筑

討論群:309800774 知乎關(guān)注:http://zhihu.com/people/sunicdavy 開源項(xiàng)目:https://github.com/davyxu

   :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  257 隨筆 :: 0 文章 :: 506 評(píng)論 :: 0 Trackbacks

前面一片文章中l(wèi)ua出現(xiàn)的bug,其實(shí)是lua本身結(jié)構(gòu)問題導(dǎo)致的:

lua中,數(shù)值使用double來存儲(chǔ),包含整形和double。而解析出來的整形也是被強(qiáng)轉(zhuǎn)為double進(jìn)行存儲(chǔ),這樣就會(huì)出問題。

舉一個(gè)簡(jiǎn)單的例子:

double f = (double)0xffffffff;
int a = int(f);

a肯定不是-1

這里的文章說明這個(gè)類型轉(zhuǎn)換問題的緣由。

 

Squirrel腳本中就不會(huì)有這個(gè)問題

local a = 0xffffffff

print( a )

結(jié)果為-1

查看其源代碼:

typedef union tagSQObjectValue
{
    struct SQTable *pTable;
    struct SQArray *pArray;
    struct SQClosure *pClosure;
    struct SQGenerator *pGenerator;
    struct SQNativeClosure *pNativeClosure;
    struct SQString *pString;
    struct SQUserData *pUserData;
    SQInteger nInteger;
    SQFloat fFloat;
    SQUserPointer pUserPointer;
    struct SQFunctionProto *pFunctionProto;
    struct SQRefCounted *pRefCounted;
    struct SQDelegable *pDelegable;
    struct SQVM *pThread;
    struct SQClass *pClass;
    struct SQInstance *pInstance;
    struct SQWeakRef *pWeakRef;
    SQRawObjectVal raw;
}SQObjectValue;

 

可以看到

SQInteger nInteger;
SQFloat fFloat;

是分開存儲(chǔ)的,因此就不會(huì)有這個(gè)問題

 

lua解決方法:

1. 將十六進(jìn)制換為10進(jìn)制存儲(chǔ)

2. 等待大俠或者官方修改代碼,做出patch


評(píng)論

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 14:02 LOGOS
兩者是不同的
1 ->
int i = 0xFFFFFFFF;
double d = (double)i; // d = -1
int a = (int)d; // a = -1

2 ->
double d = (double)0xFFFFFFFF; // d = 4294967295
int a = (int)d; // a overflow  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 14:28 LOGOS
lua_pushinteger(L, ptrdiff_t)
第二個(gè)參數(shù)是ptrdiff_t,不是int
我比較感興趣你是在什么平臺(tái)下編譯的,32位?64位?
編譯器是什么,VC?gcc?  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 17:34 Davy.xu
@LOGOS

VC,32位
  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 17:47 黃路易
我懷疑是你的lua嵌入代碼或者編譯環(huán)境的問題,因?yàn)樵诩僱ua的命令行中沒有你上一篇文章的問題,或者你看看我寫的這篇?
http://www.hlouis.com/develop/lua-cant-do-math/
不知道有沒有幫助  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 17:58 LOGOS
@黃路易
可能是優(yōu)化問題
把lua_pushinteger((double)(int)0xFFFFFFFF)
優(yōu)化成了
lua_pushinteger((double)0xFFFFFFFF)

Davy跟一下匯編,然后貼出來看看  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 19:14 Davy.xu
@黃路易
在lua虛擬機(jī)內(nèi)部的數(shù)字,和你用print打出來都是“貌似"對(duì)的
這個(gè)問題,我朋友項(xiàng)目也發(fā)生過,做法就是全用整數(shù)  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-04 19:18 Davy.xu
@LOGOS
你的這段代碼我試過,不管用的
我現(xiàn)在工程里已經(jīng)解決這個(gè)問題,還是得用整數(shù),就是看起來非十六進(jìn)制的顏色很惡心
  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-22 14:11 Quon
這個(gè)問題的原因是DirectX修改了系統(tǒng)行為強(qiáng)制把浮點(diǎn)數(shù)定為單精度,造成lua整型的范圍變小了  回復(fù)  更多評(píng)論
  

# re: Lua腳本浮點(diǎn)轉(zhuǎn)整形bug分析 2010-02-23 08:56 Davy.xu
@Quon
這個(gè)例子中并沒有使用到DX  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99精品国产热久久91蜜凸| 美女网站在线免费欧美精品| 亚洲乱码日产精品bd| 亚洲欧洲日本国产| 欧美激情第9页| 亚洲激情校园春色| 欧美激情综合网| 日韩一级黄色大片| 久久在线播放| 亚洲精品日本| 国产精品欧美日韩久久| 久久婷婷影院| av成人免费观看| 亚洲综合色自拍一区| 久久久久久久久伊人| 亚洲国产日韩一区| 国产日韩欧美精品一区| 欧美激情第8页| 国产精品二区影院| 欧美福利一区| 欧美一区二区大片| 欧美国产三级| 国产精品www994| 久久影院午夜片一区| 亚洲欧美国产77777| 久久久久欧美精品| 亚洲男人的天堂在线aⅴ视频| 欧美一区2区三区4区公司二百| 亚洲国产精品成人综合色在线婷婷| 亚洲视频在线二区| 亚洲国产高清在线观看视频| 国产女主播视频一区二区| 欧美精品九九| 国产一区二区三区在线播放免费观看| 国产精品九九| 在线看片一区| 亚洲国产成人久久| 亚洲欧美国产精品va在线观看| 亚洲日韩视频| 久久高清国产| 久久国产福利国产秒拍| 欧美福利网址| 亚洲国产日韩欧美在线图片| 亚洲一区二区三区免费在线观看| 亚洲午夜激情免费视频| 中文在线资源观看网站视频免费不卡| 亚洲精品社区| 久热精品视频在线观看一区| 国产精品主播| 国产资源精品在线观看| 国产一区二区三区在线观看精品 | 欧美影院成年免费版| 亚洲综合精品四区| 欧美激情四色 | 亚洲一区二区三区免费观看| 欧美国产视频日韩| 91久久精品一区二区别| 免费视频亚洲| 久久人人97超碰国产公开结果| 国产精品亚洲综合久久| 亚洲欧美日韩另类精品一区二区三区 | 欧美一区二区视频免费观看| 国产精品三级视频| 亚洲欧美不卡| 亚洲性线免费观看视频成熟| 欧美手机在线| 国产一区视频观看| 久久国产精品亚洲va麻豆| 欧美电影资源| 欧美午夜a级限制福利片| 国产一区二区三区久久精品| 欧美人与性动交cc0o| 欧美日韩久久精品| 国产欧美亚洲一区| 羞羞色国产精品| 欧美激情aⅴ一区二区三区| 亚洲电影免费在线| 在线综合亚洲欧美在线视频| 欧美日韩一区二区免费在线观看| 中文欧美日韩| 一区二区三区鲁丝不卡| 久久精品成人欧美大片古装| 欧美精品成人一区二区在线观看| 日韩亚洲一区二区| 午夜精品免费在线| 免费不卡视频| 欧美久久在线| 欧美一区二区三区四区视频| 久久精品最新地址| 国产精品www994| 久久久精品性| 蜜臀99久久精品久久久久久软件| 国产精品久久97| 久久精品国产久精国产一老狼| 久久精品一区四区| 一区二区免费在线播放| 亚洲国产精品第一区二区| 欧美四级电影网站| 久久久久88色偷偷免费| 欧美激情偷拍| 久久精品男女| 欧美四级在线观看| 久久久综合视频| 午夜亚洲性色福利视频| 国产精品亚洲精品| 亚洲国产成人精品久久久国产成人一区| 欧美另类综合| 浪潮色综合久久天堂| 欧美影院精品一区| 一本久道久久综合婷婷鲸鱼| 欧美激情aⅴ一区二区三区| 欧美午夜一区二区三区免费大片| 久久躁日日躁aaaaxxxx| 欧美天堂在线观看| 欧美高清视频| 黑丝一区二区| 欧美大片在线观看一区| 国产精品欧美日韩| 日韩一级在线观看| 亚洲精品美女在线| 久久久久久综合网天天| 久久久久综合网| 国产精品卡一卡二| 欧美专区亚洲专区| 欧美人妖另类| 亚洲夫妻自拍| 国内外成人在线视频| 在线视频欧美一区| 99国产一区| 欧美不卡福利| 亚洲在线网站| 久久国产日韩| 亚洲久久一区二区| 久久天堂精品| 国产精品网站视频| 一区二区三区欧美激情| 日韩视频在线你懂得| 欧美成年人网| 亚洲高清不卡一区| 亚洲国产一区二区三区高清| 亚洲欧美日本国产专区一区| 久久字幕精品一区| 亚洲国产日韩在线| 国产精品区一区二区三区| 日韩视频一区二区三区| 在线一区亚洲| 欧美日韩在线观看一区二区| 日韩视频免费观看高清在线视频 | 亚洲国产精品国自产拍av秋霞| 久久久久免费视频| 亚洲第一级黄色片| 日韩一区二区福利| 欧美日韩一区二区视频在线| 中文国产成人精品久久一| 亚洲一区图片| 国产日韩欧美在线一区| 久久国产主播精品| 蜜桃久久精品乱码一区二区| 亚洲欧洲三级电影| 欧美日本亚洲| 亚洲欧美日韩在线不卡| 久久午夜视频| 亚洲六月丁香色婷婷综合久久| 欧美日韩蜜桃| 午夜精品久久久| 欧美成人免费网站| 一本色道**综合亚洲精品蜜桃冫 | 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 久久精品二区亚洲w码| 欧美成人第一页| 欧美日本免费| 亚洲视频一区二区| 久久综合久色欧美综合狠狠| 亚洲人成人一区二区三区| 国产精品你懂的在线欣赏| 久久久之久亚州精品露出| 亚洲国产精品视频| 性色av香蕉一区二区| 亚洲人成在线观看网站高清| 国产精品人成在线观看免费| 久久男人资源视频| 亚洲视频在线观看网站| 免费成人美女女| 欧美一区日韩一区| 一本色道久久88精品综合| 黄色欧美日韩| 国产精品一区二区久久精品| 欧美—级a级欧美特级ar全黄| 欧美在线观看一区| 亚洲一区精品在线| 国产精品入口66mio| 91久久精品国产91久久| 国产精品va在线播放| 久久免费精品视频| 亚洲伊人色欲综合网| 欧美激情视频一区二区三区在线播放 | 国产亚洲欧美日韩美女| 久久亚洲春色中文字幕久久久| 在线精品在线| 欧美日韩一区二区视频在线 |