我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:神州彩票 > 二进制大对象 >

C 超过8位二进制 如何位运算

归档日期:04-23       文本归类:二进制大对象      文章编辑:爱尚语录

  比如我有一个object11011111……;应该用什么样的办法让它按位其反?有效率高的方法吗?(不要用byte数组每8位存储,然后循环操作)...

  比如我有一个object 11011111……;应该用什么样的办法让它按位其反?有效率高的方法吗?(不要用byte数组每8位存储,然后循环操作)

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  第一一个字节就是8位,如果你说的16位,可以用short,你说32位可以用int,都可以直接按位取反的,但是超过32位的,系统没有内置的类型支持,(64位现在也有支持,在c++中有long long),只能你自己实现呀。

  编程就是使用现在提供的东西,完成你需要的工作,不是什么东西都提供了,不然也不用你去学习编程了。追问有道理。只是我想知道,假如有个一万位二进制对象,有没有更快的方法。虽然可以把它保存到一个数组中去,然后循环来取反。系统有没有提供类似 流 的方法来实现呢?输入一个二进制对象,输出一个处理好的对象。如果木有我就自己来写了。追答不会提供这样的流的。如果你学过计算机的相关课程,你就会明白,计算机的寄存器是有大小的,32位机器就是32位,64位的机器是64位,这样一次可以并行操作的就是这么寄存器位数的操作,多了的话,系统也得需要一个一个的循环来的,跟你自己实现的是差不多的,只是一个系统帮你实现了,一个你自己实现,而且这个效率上也不会差很多。

  其实也有可能有这样的流,但是肯定不是单单为你取反提供一个这样的流,像c++中有一个bitset的类,这个类就是提供位操作的,当然也可以提供你取反要求,他还有其他的功能。c#我不清楚,你可以查一查相关的类似于bitset的东西。相当于系统封装好了,你可以直接用。

本文链接:http://runhappyplace.com/erjinzhidaduixiang/75.html