题解 1774: [编程入门]C语言之二进制位问题

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

优质题解

1774: [编程入门]C语言之二进制位问题(位运算)

解题思路:不要用数组来做,虽然实现比较简单,但是这是一道练习位运算的好题。明显的,位运算会在以后做题中给我们很大帮助,熟悉和掌握它是我们必要的工作。我们的一个思路就是让x~y的位都保留,而其它位都为0,这样就能得到x~y位代表的值了。怎么让其余都为0而x~y位不变呢,我们先看一个小例子。

简单易懂题解,利用二进制左右移位

解题思路:左右来回移位n1右边:先右移去掉n1右边多余的数,再左移回到原位置,并将n1右边多余的数的都补为0;n2左边:先左移去掉n1左边多余的数,再右移回到原位置,并将n1左边多余的数的都补为0此时n1右边和n2左边都为0,并且n1-n2之间的数还在原位置例子:如value=63二进制为101111

[编程入门]C语言之二进制位问题-题解(C语言代码)

1.题目指定32位无符号整数,引用头文件使用固定宽度的整型2.要取出数字中的某些位,使用掩码加按位与运算实现,使用异或加移位运算生成掩码。```c#include#include#definemask0xffffffffuint32_tgetbits(uint32_tv,
优质题解

C语言程序设计教程(第三版)课后习题12.3 (C语言代码)

解题思路:为了原整数value用二进制表示后,从右数第n1位到第n2位不变,其余位变0,如n1=5,n2=9,可以得到如下图所示的一个二进制数(第三行),用它和value与,就可以取得所要的数。注意事项:为了使得0右移不会由于系统不同,得到-0算术右移高位补1的结果,

新学小知识,哈哈,按位取反

摘要:解题思路:注意事项:              v&(~x<<a)&(~x>>31-b);//二进制左移低位补0,二进制右移高位补0              其实这里就相当于下面,这就是取反符号的作……

几行代码搞定

摘要:解题思路:~x = 32个1,位运算后即可注意事项:参考代码:#include <stdio.h>int main(){   unsigned value,n1,n2,x = 0;   scanf("……