设置各位值。

想依次从某第一bit(最左边的)到最后一bit的为1,其他位为0.怎么弄呢?

当然可以搞个对照map或数组什么的。不过总感觉不正常,正好试着用下bitset。

bitset<32>后默认为全为0,set(n)则n为为1,reset反之。结果测试的从第一位设置到第三十二位,to_ulong()后的数值确实是从“0x00000001”到“0x80000000“。但是在2003平台下,其内存为缺不如值显示的,如1对应的值是“0x01000000”,它要是最高位为1也罢了,直接掉下序用htonl就好了,但是它是第8位为1。值的(1、2、4、8、16、32……)对应的是(左8,左7……左1,左16,左15……左9,左24……)。

其实解决也简单,反过来呗,从bitset::set(31)减至set(0),后再htonl就好了。

要是多于32位呢?反正memcpy,移呗。这时候想,当然也可以只用一个字节,这就不存在字节序问题了,然后,复制时候移位就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值