时间:2021-05-20
提出问题:
1.输入int 20,其二进制为10100,按位输出10100;
2.或者将1转化为“+”,0转化为“-”,输出就是” + - + - - “;
解决方法:
复制代码 代码如下:
int biTofh(int bi,int len){//二进制转化为正负号
int i=0;
while(i<len){
int tmp = 1;
if((bi & (tmp<<(len-i-1))) != 0){//从最左位开始比较,该位是1
printf(" + ");
}
else{
printf(" - ");
}
i++;
}
printf("\n");
return 0;
}
int main(){
int input[] = {1,2,3,4,5};
biTofh(20,5);
return 0;
}
输出结果:
复制代码 代码如下:
xu@xu-ThinkPad-X61:~/algorithm$ ./a.out
+ - + - -
xu@xu-ThinkPad-X61:~/algorithm$
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
按位与主要是对二进制数操作。代码如下:复制代码代码如下:这里不是单纯的相加关系十进制1换算成二进制00000001十进制2换算成二进制00000010按位^00
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示例如:二进制:1010表示为字符串:"1010"intd=10;//十进制转二进制字符串C
10的补码分为: 1、如果是十进制数,10的8位二进制补码是00001010,-10的8位二进制补码是11110110; 2、如果是二进制数,10的8位二进制
与八进制数16.327等值的二进制数是(1110.011010111)2,每位8进制数对应一个3位二进制数,所以只要把每一位的8进制数转换成3位二进制数即可。
向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数。然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。 二