快速十进制与二进制的互转
2023-07-11 19:39:00
快速十进制与二进制的互转
正数十进制转二进制
首先记住一个大概长度的次幂表:2^72^62^52^42^32^22^12^012864321684212. 然后将需要换算的数值进行拆分
3. 最后在对应数字上标志1,没有的标记0,有点抽象,实例一下子就懂了
例子:5 转 二进制
5 = 2^0 + 2^2即 2^0 和 2^2 下方为 1 其余为 0则以8位的表示则为:000001012^72^62^52^42^32^22^12^0128643216842100000101反推二进制就返回来就是了:
次幂下方是1的 直接相加:2^2 + 2^0 = 5
负数的二进制转换:
换算成源码,源码就是数值绝对值的二进制反码,源码取反,也就是0变1,1变0补码,即低位+1得到负数二进制例子:-5 转 二进制
源码:00000101反码:11111010补码:11111011所以 -5 的二进制就为 11111011
小数的二进制转换:
十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。注意:会存在一直小数点后不为0.例如:十进制的0.125,要转换为二进制的小数。
小数部分0.125乘以2,得0.25,然后取整数部分0。再将小数部分0.25乘以2,得0.5,然后取整数部分0。再将小数部分0.5乘以2,得1,然后取整数部分1。则得到的二进制的结果就是0.001。异或运算 ^
相同的为0,不同的为1,满足交换律 a ^ b ^ c = c ^ a ^ b,可以用来两个数交换 a ^ b ^ a = b,a ^ b ^ b = aint a =5,b = 6;
//5二进制:0101
//6二进制:0110
int a ^ b = 3; // 3二进制为:0011
//例子:再不申请新的存储空间的前提实现两个数交换,根据 a ^ b ^ a = b 实现
int num1 = 4,num2 = 5;
num1 = num1 ^ num2;// 4^5
mum2 = num1 ^ num2;//4^5^5 = 4
num1 = num1 ^ num2;//4^5^4 = 5
以上就是关于《快速十进制与二进制的互转》的全部内容,本文网址:https://www.7ca.cn/baike/51612.shtml,如对您有帮助可以分享给好友,谢谢。
声明