这个数据结构存储很有说法 哥们很引以为豪啊 虽然后面写函数的时候常常猪脑过载同样的三个数据成员 在三种不同作用的时候分别担任三种不同的工作 这三种不同作用是按照sign的值来区分的
跟IEEE一样并非传统的科学计数法(在小数点的前面留一个数字) 之前学的时候我不理解为什么 现在做这个计算器明白了std::deque digits 存放"有效数字" (不包括开头和末尾的所有0 比如1000只存个1 方便后续运算 所以不是数学上真正意义的有效数字)
IEEE舍弃掉整数位因为必定是1 但除此以外其实还有个好处
如果是 0.xxxx 而不是 x.xxx 的话 这个指数power就很有用
0.000233 = 0.233 * 10 ^ -3 指数 -3 拿出来可以瞬间知道 0.000233的小数点后面有3个0
2333.3333 = 0.23333333 * 10 ^ 4 指数 4 拿出来可以瞬间知道 2333.3333的小数点前面有4位数
比如乘法符号 '*' digit里面就是一个单独的{ '*' } 把char类型转换为int存进去digits 没啥好说的 最最最关键的是这时候的power
如果是函数类型的计算 比如 log 函数 那digit里面就是 { 'l', 'o', 'g' } 总之就是把名字给放进去
还可以加各种各样的错误 如果你有需要的就告诉我 我看看能不能加进来
求出来一个后20位的π 要这个里面跑tm好几小时 鬼才用..... 所以代码里我直接把π的真实值给拿来用了哈哈哈哈哈哈哈
具体可以参见这篇文章: https://blog.csdn.net/a8425/article/details/119253258源码:
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |