返回信息流char 256来表示0~9太浪费。有啥节省空间的办法不?
这是一条镜像帖。来源:北邮人论坛 / cpp / #92589同步于 2016/7/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
大数怎么表示?
Gewter
2016/7/17镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
一直很好奇暖神究竟在搞什么开发工作,为啥啥都知道[ema9]
【 在 nuanyangyang 的大作中提到: 】
: 看你干什么用。省空间的同时会降低数据读写的速度。对于计算机来说,操作和字长相同的数据是最快的。还是说说具体要做什么吧。
考虑Haskell如何?里面无论多大的的数都不成问题。
【 在 nuanyangyang 的大作中提到: 】
: 看你干什么用。省空间的同时会降低数据读写的速度。对于计算机来说,操作和字长相同的数据是最快的。还是说说具体要做什么吧。
bitfield
【 在 mnhg123 的大作中提到: 】
: 直接位运算?把char分成高4位和低4位?但这样做加减乘除似乎会很麻烦
: 发自「贵邮」
每个int,4个byte,来表示0~999999999的数。
比如,要表示123456789000,超出一个int表示的范围,可以用两个int。int1,int0
int1 = 123 (x 10^9)
int0 = 456789000
做加法进位满 999999999 进位。其他运算同理即可。
由于每次操作都是机器字长,速度很快,而且很省空间。如果每次运算都是int范围以内,性能跟int运算相当。
这个看起来不错
【 在 RainVision 的大作中提到: 】
: 每个int,4个byte,来表示0~999999999的数。
: 比如,要表示123456789000,超出一个int表示的范围,可以用两个int。int1,int0
: int1 = 123 (x 10^9)
: ...................
看看7楼有bug不
【 在 nuanyangyang 的大作中提到: 】
: 看你干什么用。省空间的同时会降低数据读写的速度。对于计算机来说,操作和字长相同的数据是最快的。还是说说具体要做什么吧。