900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 正负数二进制表示 正负数二进制移位运算 二进制源码 反码 补码

正负数二进制表示 正负数二进制移位运算 二进制源码 反码 补码

时间:2023-05-21 14:05:04

相关推荐

正负数二进制表示 正负数二进制移位运算 二进制源码 反码 补码

源码

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值.

[+1] 的原码=00000001

[-1] 的原码=10000001

第一位是符号位.因为第一位是符号位,所以8位二进制数的取值范围就是:

[11111111,01111111]

[-127,127]

反码

正数的反码是其本身

负数的反码是在其原码的基础上,符号位不变,其余各个位取反.

[+1]=[00000001]原=[00000001]反

[-1]=[10000001]原=[11111110]反

补码

正数的补码就是其本身

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)。

[+1]=[00000001]原=[00000001]反=[00000001]补

[-1]=[10000001]原=[11111110]反=[11111111]补

【-1】 原码 10000001 反码11111110 补码 11111111

【3】 原码 00000011 反码 00000011 补码 00000011

【-127】原码11111111 反码 10000000 补码 10000001

【127】 原码 01111111 反码 01111111 补码 01111111

首先要明白一点,二进制移位操作都是针对存储在计算机中中二进制的操作,

那么就要知道,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的。

左移位:<< ,有符号的移位操作

左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充

右移位:>> ,有符号的移位操作

右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负数用1补充。

public static void main(String[] args) {System.out.println(3<<2);//3左移2位System.out.println(-3<<2);//-3左移2位System.out.println(6>>2);//6右移2位System.out.println(-6>>2);//-6右移2位}

12-121-2

解释:

1>

3 正数,在计算机中用二进制表示

00000000 00000000 00000000 00000011

00 00000000 00000000 00000000 00001100 左移两位右边补00结果为12 2 的3次方 + 2的2次方 = 12

2>

-3 负数 ,在计算机中用二进制补码表示

求-3的补码,根据上面的方法 负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.

10000000 00000000 00000000 00000011 -3源码

11111111 11111111 11111111 11111100 -3反码

11111111 11111111 11111111 11111101 -3补码

11 11111111 11111111 11111111 11110100 左移两位右边补00

这个数第一位是1 说明是个负数,那就是某个负数的补码。求出源码就能知道是哪个负数

11111111 11111111 11111111 11110011 减一,取得反码

10000000 00000000 00000000 00001100 第一位不变,其他为取反。得到 源码。

所以此负数为 -12

3>.

6 为正数,在计算机中显示二进制

00000000 00000000 00000000 00000110 6的源码

00000000 00000000 00000000 00000001 右移两位,正数右移,左边补0 。

所以答案为 1

4> .

-6 位负数,在计算机中应该显示补码

00000000 00000000 00000000 00000110 6 的源码

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1

求出补码

11111111 11111111 11111111 11111010 -6 的补码

负数右移,左边空缺用1补充

11111111 11111111 11111111 11111110 此为答案数字的补码。是个负数

求此负数源码

10000000 00000000 00000000 00000010 此为答案 -2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。