输入个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
来源:互联网 发布:淘宝网拍下商品的步骤 编辑:程序博客网 时间:2024/05/17 22:38
1. 输入个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果。
提示:0 ^ 0 = 0; 1 ^ 1 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1;
#include <stdio.h>
int main()
{
int array[32] , new_bit[32]; //利用数组存放数的二进制形式存放在
int a , b ;
int i, j ;
printf("Please enter a number for a:");
scanf("%d",&a);
printf("The binary of integer %d is :\n",a);
for( i = 31 ; i >= 0 ; i-- , a >>= 1) //利用数a与1相与求二进制,二进制从最高位到最低位求,每求得一位就将该数放入数组,从数组的最后面开始存放,a 右移求下一位
{
array[i] = 1 & a ;
}
for( i = 0 , j = 0 ; i < 32 ; i++ )
{
printf("%d",array[i]);
j++;
if( j % 4 == 0 )
printf(" ");
}
printf("\n");
//第一位和最后一位没有和其他数相异或,直接放到new数组,其他new数组的元素由array数组同一位置的前一个和后一个相异或而得
new_bit[0] = array[0];
for( j = 1; j < 31 ; j++ )
{
new_bit[j] = array[j - 1] ^ array[j + 1];
}
new_bit[j] = array[31];
printf("The new binary is :\n");
for( i = 0 , j = 0 ; i < 32 ; i++ )
{
printf("%d",new_bit[i]);
j++;
if( j % 4 == 0 )
printf(" ");
}
printf("\n");
return 0;
}
int main()
{
int array[32] , new_bit[32]; //利用数组存放数的二进制形式存放在
int a , b ;
int i, j ;
printf("Please enter a number for a:");
scanf("%d",&a);
printf("The binary of integer %d is :\n",a);
for( i = 31 ; i >= 0 ; i-- , a >>= 1) //利用数a与1相与求二进制,二进制从最高位到最低位求,每求得一位就将该数放入数组,从数组的最后面开始存放,a 右移求下一位
{
array[i] = 1 & a ;
}
for( i = 0 , j = 0 ; i < 32 ; i++ )
{
printf("%d",array[i]);
j++;
if( j % 4 == 0 )
printf(" ");
}
printf("\n");
//第一位和最后一位没有和其他数相异或,直接放到new数组,其他new数组的元素由array数组同一位置的前一个和后一个相异或而得
new_bit[0] = array[0];
for( j = 1; j < 31 ; j++ )
{
new_bit[j] = array[j - 1] ^ array[j + 1];
}
new_bit[j] = array[31];
printf("The new binary is :\n");
for( i = 0 , j = 0 ; i < 32 ; i++ )
{
printf("%d",new_bit[i]);
j++;
if( j % 4 == 0 )
printf(" ");
}
printf("\n");
return 0;
}
程序运行示例:
Please enter a number for a:45
The binary of integer 45 is :
0000 0000 0000 0000 0000 0000 0010 1101
The new binary is :
0000 0000 0000 0000 0000 0000 0100 1101
The binary of integer 45 is :
0000 0000 0000 0000 0000 0000 0010 1101
The new binary is :
0000 0000 0000 0000 0000 0000 0100 1101
0 0
- 输入个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
- 位运算训练05—输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b; 使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
- 输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
- 输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
- 5.题目:输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果 提示:0 ^ 0 = 0; 1 ^ 1 = 0;
- 输入一个32位的整数啊,使用按位异或运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
- 位运算训练04—输入一个整数a,再输入两个整数p(p<32),v(0|1);将该整数a的p位设置为v,输出修改后的该整数的二进制表示
- 位运算训练02—输入一个整数a,再输入两个整数p1,p2(p1,p2<32) 输出该整数的二进制表示方法中从右端开始的p1到p2位
- 位运算训练03—输入一个整数a,再输入两个整数p1,p2(p1,p2<32);将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出
- 输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 4.输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 输入一个整数,输出这个整数的每一位
- 两个int(32位)整数a和b的二进制表达中,有多少个位(bit)不同
- erlang 取整数的位或设置整数的位
- 2.输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- 输入一个整数a,再输入两个整数p1ip2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p2位i
- 输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- 图像特征提取
- php小偷程序--获取网站内容
- HBase的java客户端
- 从表TABLE_NAME中提取前10条记录
- Node.js初体验 Kali安装Node.js
- 输入个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
- Atitit 提取sfit特征点,并绘制到原图上
- 传说中的数据结构 (sdut oj)
- Hydra—密码爆破神器
- BUG:virtualbox -> Kernel driver not installed (rc=-1908)
- Android开发--IM聊天项目(一)
- Qt之QStackedWidget
- 快速幂取模
- Android的属性动画