刚接触delphi,有个问题不懂
itemp:int64;
itemp:=strtoint(leftstr(str,9))*21+6787774521;str是'134327626222',结构itemp是5313687371.为什么呢?
itemp:int64;
itemp:=strtoint(leftstr(str,9))*21+6787774521;str是'134327626222',结构itemp是5313687371.为什么呢?
解决方案 »
- 求购一套DELPHI + Ms SQLSevrver 的进销存的源代码。
- 我根据需要在form的panel上动态创建一些button组件(创建时没有名字),如何再动态删除任意一个button组件?在线等待,马上结贴送分!谢
- 如何实现点击按钮出现下拉式记事本
- 我做了个简单的聊天程序,可是在设定远程Ip和端口已极本地端口时,却出错!
- 急需Delphi中API函数和操作功能。
- 数据库事务的问题?(急!!!!)
- 1,DBGrid 中如何显示88.88%这种格式?2,count(..)/count(..)如何显示为float型?
- 我想打印DBGrid 谁有这方面的组件吗帮帮忙撒 多多谢谢谢谢谢了
- 怎么样在程序中动态的为ACCESS中创建一个数据表格!!!!!
- 远程主机强迫关闭了一个现有的连接
- 我的数据库恢复之后显示成功,但数据还是原来的数据!请高手指点,在线等
- 远程执行cmd命令
itemp:int64;
itemp:=strtoint(leftstr(str,9))*21+6787774521;
str是'134327626222',结果itemp是5313687371.为什么呢?
strtoint(leftstr(str,9))这句代码的意思是str取前9位转换成数字
5313687371怎么转换来的?
5313687371,hex形式是 1 3cb8 6f4b
最高位的0x02变成了0x01如果str是"303189420",实际值应该是13154752341(hex 3 1015 9755),但是itemp结果是
8859785045(hex 2 1015 9755),最高位的0x03变成了0x01.费解啊.
而不是strtoint
不然的话,int最多能表示到2147483647,超过就溢出了,当然就成了负数
strtotint限制了strtoint(leftstr(str,9))*21这个的范围.终于搞懂了.郁闷死我了
谢谢兄弟们.