栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

一、JAVA04747 复习

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一、JAVA04747 复习

一、JAVA04747 自考复习 1.原码、反码、补码(首数字为符号位:整数为0,负数为1)
&:如果两个数为负数,先补位在进行运算(整数的补码为本身) 
l:有1为1,否则为0(计算负数时,结果符号为1需要进行逆操作转为源码输出结果) 
^:相同为0,不同为1

-4 原码:1000 0100  反码(除符号位,按位取反):1111 1011  补码(反码+1):1111 1100  
5 原码:0000 0101   反码(除符号位,按位取反):1111 1010  补码:整数补码为本身(0000 0101)
																-4|5
													      1111 1101:符号为1转源码
														  1111 1100(反码-1)
													 源码:1000 0011 -3
2.位移运算符 :右移(>>)、左移(<<)、无符号右移(>>>) A<A>>B代表乘A÷2的B次方

2.1.左移(<<):右边空出的位用0填补高位,左移溢出则舍弃高位。
int a=8<<2;
8:源码 0 000 1000 左移后:0 010 0000

int b=-8<<2;
-8:源码(+8源码改符号位为1):1 000 1000  反码:1 111 0111  补码(反码+1,等于二为零 在先前进一):1 111 1000
整体左移:1 110 0000   逆运算(整体-1,等于-1为1 在先前进一):1 101 1111 取反:1 010 0000  int b=-32;

2.2.右移(>>):右边空出的位用0或者1填补,整数用0,负数用1。低位右移溢出则舍弃该位。
int a=8>>2;
8:源码 0 000 1000 右移后:0 000 0010

int b=-8>>2;
-8:源码(+8源码改符号位为1):1 000 1000  反码:1 111 0111  补码(反码+1,等于二为零 在先前进一):1 111 1000
整体右移:1 111 1110   逆运算(整体-1,等于-1为1 在先前进一):1 111 1101 取反:1 000 0010  int b=-2;
2.3.无符号右移(>>>) :正数与右移规则一样,负数的无符号右移,在相应的补码位移所得,在高位补0即可
正数:例如4>>>2
4源码:0 000 0100
与4>>2的运算相同,结果也为1

负数:例如-4>>>2

首先写出-4的二进制数,因为是负数所以最高位为1

-4源码:1 000 0100

然后写出-4补码:保证符号位不变,其余位置取反加1(从右往左遇到第一个1,然后剩下的全部取反就是了)
4反码:1 111 1011

-4补码:1 111 1100(补码)

右移2位: 在高位补0

右移2位:0 011 1111

结果为:63
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942121.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号