位运算算法小问题

011<<1应该是110 吧? 那011<<2是几? 是100还是1100?我见网上一般都写8位是不是因为一个字节是8位?能不能存9位或16位?

ls的,int是32位。。。16位还是n年前的16位机的呢。现在都32位机了。

回答lz的问题:
011<<2向左移动2位,低位补0.所以是1100.
8位是1个bit,变量类型都是bit的整数倍的。
比如char是1bit=8位。int是4bit=32位。
没有9位的数据类型。 16位的倒是有:short int就是16位的。
对于int型的计算不写成32位也是为了方便。一般写8位在运算的时候已经够用了。它的表示范围是-256到255.如果给出个比255大的数,还是要多写几位的。
这时候写16位。再超出范围就写32位。。不过出题的人不会这么变态出个那么大的数吧。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-01
这个与数据类型有关,但是一般直接写为数字那就是int型的,而int型数据一般式16位或32位,这跟机器有关,现在计算机大多是32位的。
关于数据类型一般的书籍都有介绍,可以去看看
第2个回答  2009-07-01
这个得看你的变量是什么类型了
如果你用int类型保存数据(16位),那么011<<2 就是 1100

力扣让人抓耳挠腮的「位运算」 python3 实现
力扣231题“2的幂”则将位运算与2的幂的概念紧密结合。位运算“&”(与运算)在这里被巧妙地用来识别数字是否为2的幂。通过理解位运算与2的幂的关系,我们可以轻松解决这类问题,为力扣解题提供了另一种思考路径。综上所述,位运算在力扣算法题中扮演着不可或缺的角色。掌握位运算的基本知识和技巧...

位运算算法小问题
回答lz的问题:011<<2向左移动2位,低位补0.所以是1100.8位是1个bit,变量类型都是bit的整数倍的。比如char是1bit=8位。int是4bit=32位。没有9位的数据类型。 16位的倒是有:short int就是16位的。对于int型的计算不写成32位也是为了方便。一般写8位在运算的时候已经够用了。它的表示范围...

位运算怎么算
+法的优先级比左移高,先算2+1=3 再算b左移3位 b=10转成二进制就是1010,左移两位就是1010000,转成10进制是80。(这里还有简便算法,左移3位就是乘以2^3,也能得到80)最后是赋值,a=80,所以a的值是80.

位运算常见用法
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2。例如:a = a>> 2 将a的二进制位右移2位,左补0 or 补1得看被移数是正还是负。位运算符与赋值运算符结合,组成新的复合赋值运算符,它们是:运算规则:和前面讲的复合赋值运算...

5个8怎么算等于2不加括号的算法
1. 五个8怎么算等于2不加括号的算法:可以通过位运算来实现。将五个8进行位运算,得到的结果为2。具体的运算过程为:88888 >> 1,结果为22222;22222 >> 1,结果为11111;11111 >> 1,结果为5555;5555 >> 1,结果为277;277 >> 1,结果为138;138 >> 1,结果为69;69 >> 1,结果为...

10394 用位运算速解 n 皇后问题
解法一(步步回眸)虽然基础,但效率低,解13皇后需要89秒。解法二(雁过留痕)通过标记竖、撇、捺的位置,检查冲突时间减至O(1),解13皇后用时14秒。解法三(以一当百)引入位运算,但空间优化并未显著提升速度,24秒。真正突破的是解法四(弹无虚发),通过位运算快速枚举可放置皇后的位置,13...

关于位运算的解密(易语言,已知加密算法过程)
异或(c的低四位)。根据 A 异或 B 异或 A = B,可知:要还原低四位,只要再异或一次(a的高四位 异或 c的高四位)即可。而且,x的高四位 等于 c的高四位,所以解密运算和加密运算完全一样。输入(x)a = 195 o = 位异或(a,x)y = 右移(o,4)c = 位异或(y,x)输出(c)

八皇后问题
首先,从位运算式bit = (D + 1) & ~D中获取可放置皇后的位,然后更新冲突状态A', B', C',根据这些信息进行递归。当找到一个位置后,通过D = D + bit来标记已试过的区域,然后继续寻找下一个可能的位置。以下是算法的简洁代码表示,展示了这个过程的迭代和递归过程:代码示例...

位运算有什么奇技淫巧?
位运算在编程中扮演着重要角色,常被用于解决性能优化问题。其基础在于二进制表示的整数,直接操作这些位能显著提高算法执行效率。位操作符如右移运算(>>),用于将二进制位向右移动。无符号数高位补零,有符号数则补符号位。位运算可以实现简洁的乘除法操作,通过异或和位与操作实现数值交换,判断整数...

求解c++位运算!a=1,b=2,c=a^b<<2 则c是多少
答案是9 符号^是异或的意思,也就是两个操作位,如果是不同的,则计算结果是1 符号<<是左位移的意思,按位移动 c=a^b<<2 的计算顺序是先计算b<<2,即2<<2得8 然后计算 a^8 = 1^8 = (2进制)0001^(2进制)1000 = (2进制)1001 = 9 ...

相似回答
大家正在搜