二进制数操作
来源:互联网 发布:mac idea groovy 配置 编辑:程序博客网 时间:2024/05/16 01:30
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
以-2为例,原码为10010, 反码11101 (10010,1为符号码,故为负)
(11101) 二进制,-13 十进制[当然,以上这些没有考虑系统位数]
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
还有一条规则:原码+补码=1后面跟若干个0
求负数的二进制:对负数绝对值的二进制码先求反码,然后求补码。
反码:是0跟1的反转。
补码:反码+1,建立在反码的基础上,运算规则是逢2进1.
举个例子:-8的反码,对8求二进制,整数占4个字节,每个字节8个比特。
10001000 原码
11110111 反码
11111000 补码
二进制需要被指定为有符号整数和无符号整数两种。
有符号整数:最高位表示符号位,1表示负数,0表示正数。负数需要先-1,然后求反码。
举个例子:
11111111 无符号 255
10000000 有符号 -128
10000001 有符号 -127
计算有符号的时候,可以直接对其(-1)x高位(7)-其他位;也可以先对其-1,然后求反,以无符号数计算。-
16进制和2进制的转换
每一位16进制位转换为对应的4byte的组合就是对应的二进制编码。同理,二进制转16进制也一样。举个例子:
-8 16进制
1000 二进制 8
10001000 -8 二进制原码 对应的1个字节
负数跟正数的&运算是通过使用正数的二进制码与负数的补码按位与计算的。
位运算
从bool的角度来看:
| 在二进制位只要有1的情况下得到1;
& 必须都是1的情况下得到1;
^ 两者相异的情况下得到1;
int number(int n){//存在安全隐患int count=0;while(n){if(n&1)count++;n=n>>1;}return count;}
- 二进制数操作
- 计算机中的二进制数及其操作符
- 给定一个二进制数,要求循环移位,在原二进制数中操作(C语言)
- 给定一个二进制数,要求循环移位,在原二进制数中操作(C语言)
- 二进制数
- 二进制数
- 位操作:十进制数转为二进制,八进制,十六进制
- C/C++ 位操作实例:输出一个数的二进制
- 位操作输出二进制数1的个数
- 二进制操作
- 【整数操作】01.将十进制数转换成二进制数,或者小于十进制数的制数
- 黑马程序员—操作数组的练习:十进制数转换二进制、八进制、十六进制数。
- 二进制数字符串转化为二进制数
- 十进制数转二进制数
- 二进制数转十进制数
- 十进制数转二进制数
- 十进制数转二进制数
- 十进制数转为二进制数
- 堆栈溢出
- Java中equals和== 的区别
- usb驱动程序
- 将Riak集成为Web应用程序的重负荷缓存服务器
- 小闹一下vb.net 正则表达式
- 二进制数操作
- Java高级特性(一)
- js 省市 二级联动
- 打通两台机器的ssh功能
- LoadLibrary失败的原因
- hdu 1528 二分匹配
- Java高级特性之static与final(一)
- C#泛型约束
- JZ2440 搭建NFS服务