当前位置: 首页 > news >正文

作文网站源码夺宝网站怎样做优化

作文网站源码,夺宝网站怎样做优化,合肥制作网站,亚马逊网站联盟java中能表示整数数据类型的有byte、short、char、int、long#xff0c;在计算机中占用的空间使用字节描述#xff0c;1个字节使用8位二进制表示。 数据类型字节数二进制位数表示范围默认值byte18-27 – 27-10char2160 – 216-1\u0000 (代表字符为空 转成int就是0)short216-…java中能表示整数数据类型的有byte、short、char、int、long在计算机中占用的空间使用字节描述1个字节使用8位二进制表示。 数据类型字节数二进制位数表示范围默认值byte18-27 – 27-10char2160 – 216-1\u0000 (代表字符为空 转成int就是0)short216-215 – 215-10int432-231 – 231-10long864-263 – 263-10L 1. 原码、反码、补码 使用位运算前需要先弄清楚这几个概念 1.1. 原码 原码也叫机器码整数的二进制形式表示最高位为符号位。1表示负数0表示正数除去符号位后剩余其他的所有位是该整数的绝对值的二进制值。 int a 7; //原码二进制表示为00000000 00000000 00000000 00000111 int b -7;//原码二进制表示为10000000 00000000 00000000 000001111.2. 反码 反码需要区分是正数还是负数正数的反码跟原码相同负数的反码是除符号位外其他位取反即负数的最高位是1不变其他位0变成11变成0。 int a 7; //反码二进制表示为00000000 00000000 00000000 00000111 int b -7;//反码二进制表示为11111111 11111111 11111111 111110001.3. 补码 补码也需要区分是正数还是负数正数的补码跟原码相同负数的补码是反码最低位加1。 int a 7; //补码二进制表示为00000000 00000000 00000000 00000111 int b -7;//补码二进制表示为11111111 11111111 11111111 11111001说完了概念其实这里的原码是方便给人看的对于计算机运算来说都是使用补码形式操作。以下的位运算和移位运算都是基于补码进行的。 2. 位运算 2.1. 位运算术语解释 位运算符含义解释备注按位与两个整数按位对齐当对齐的两位同时为1则结果为1否则为0按位或两个整数按位对齐当对齐的两位只要有一个为1则结果为1否则为0~按位非只能适用于一个整数的自身操作按位取反即1变成00变成1单目运算符^按位异或两个整数按位对齐当对齐的两位相同时为0否则为1 2.2. 位运算示例 我们以上面的int a 7和int b -7举例位运算的操作。 a的补码二进制为00000000 00000000 00000000 00000111 b的补码二进制为11111111 11111111 11111111 11111001 1、ab 按位与的结果补码为00000000 00000000 00000000 00000001 因为最高位为0所以为正数正数的原码反码补码都相同所以原码也为 00000000 00000000 00000000 00000001 转换成十进制的结果就是1。2、a|b 按位或的结果补码为11111111 11111111 11111111 11111111 最高位为1所以是负数。 反码补码-1得到反码11111111 11111111 11111111 11111110 原码反码除符号位取反得到原码10000000 00000000 00000000 00000001 由原码最高位为1可知该结果是负数除符号位外转换成十进制的结果是1所以最后按位或的结果就是-1。3、a^b 按位或的结果补码为11111111 11111111 11111111 11111110 最高位为1所以是负数。 反码补码-1得到反码11111111 11111111 11111111 11111101 原码反码除符号位取反得到原码10000000 00000000 00000000 00000010 由原码最高位为1可知该结果是负数除符号位外转换成十进制的结果是2所以最后按位或的结果就是-2。4、~a 取反结果补码形式11111111 11111111 11111111 11111000 最高位为1所以是负数。 反码补码-1得到反码11111111 11111111 11111111 11110111 原码反码除符号位取反得到原码10000000 00000000 00000000 00001000 由原码最高位为1可知该结果是负数除符号位外转换成十进制的结果是8所以最后按位或的结果就是-8。5、~b 取反结果补码形式00000000 00000000 00000000 00000110 最高位为0所以是正数。正数的原码反码补码都相同所以转换成十进制结果为6。2.3. 位运算应用于boolean操作 与、|或这两个位运算适用于boolean判断在这两个运算符的前后的条件都会计算不像java里的条件判断符并且 ||或者会短路判断符之前的满足条件后那么判断符之后的表达式不再计算。 public static void main(String[] args) {int a 5;if (a 0 a 0) {}System.out.println(条件后a a);if (a 0 | a 0) {}System.out.println(|条件后a a);if (a 0 a 0) {}System.out.println(条件后a a);if (a 0 || a 0) {}System.out.println(||条件后a a); }输出结果为 第一个判断a 0 a 0前一个判断已经是false了但是使用连接后一个表达式依然会计算a所以输出结果a的值加1等于6。 第二个判断a 0 | a 0前一个判断已经是true了但是使用|连接后一个表达式依然会计算a所以输出结果a的值加1等于7。 第三个判断a 0 a 0前一个判断已经是false了使用连接的不会再计算后一个表达式的值所以a的值不变。 第四个判断a 0 || a 0前一个判断已经是true了使用||连接的不会再计算后一个表达式的值所以a的值不变。 3. 移位运算 3.1. 移位运算术语解释 移位运算符含义解释左移补码高位不包括符号位去掉指定位数然后剩下的位数整体向左移动指定位数低位使用0补齐右移补码低位去掉指定位数然后剩下的位数整体向右移动指定位数高位补上符号位即正数补0负数补1无符号右移这个主要是针对于负数来说的补码低位去掉指定位数然后剩下的位数整体向右移动指定位数高位包括符号位全部补上0 移位运算也是基于补码来操作的因为是采用二进制所以左移n位相当于该数乘以2的n次方、右移及无符号右移n位相当于该数除以2的n次方但是无符号右移是相对于负数来说的把符号位和其他高位都置为0。 3.2. 移位运算示例 我们仍以上面的int a 7和int b -7举例移位运算的操作。 a的补码二进制为00000000 00000000 00000000 00000111 b的补码二进制为11111111 11111111 11111111 11111001 1、a2 符号位不变高位去掉两位整体左移两位低两位补0结果为 补码00000000 00000000 00000000 00011100 高位为0即正数正数的原码反码补码相同所以原码补码转换为十进制结果为282、a2 符号位为0正数则符号位不变低位去掉两位整体右移两位高两位补0结果为 补码00000000 00000000 00000000 00000001 高位为0即正数正数的原码反码补码相同所以原码补码转换为十进制结果为13、a2 符号位为0正数低位去掉两位整体右移两位高两位包括符号位补0结果为 补码00000000 00000000 00000000 00000001 高位为0即正数正数的原码反码补码相同所以原码补码转换为十进制结果为14、b2 符号位不变高位去掉两位整体左移两位低两位补0结果为 补码11111111 11111111 11111111 11100100 高位为1即负数 反码补码-1得到反码11111111 11111111 11111111 11100011 原码反码除符号位取反得到原码10000000 00000000 00000000 00011100 由原码最高位为1可知该结果是负数除符号位外转换成十进制的结果是28所以最后按位或的结果就是-28。5、b2 符号位为1负数低位去掉两位整体右移两位高两位补1符号位为1结果为 补码11111111 11111111 11111111 11111110 高位为1即负数 反码补码-1得到反码11111111 11111111 11111111 11111101 原码反码除符号位取反得到原码10000000 00000000 00000000 00000010 由原码最高位为1可知该结果是负数除符号位外转换成十进制的结果是2所以最后按位或的结果就是-2。6、b2 符号位为1负数低位去掉两位高两位包括符号位都补0结果为 补码00111111 11111111 11111111 11111110 高位为0即正数正数的原码反码补码相同所以原码补码转换为十进制结果为1073741822。3.3. 移位运算注意事项 1、byte、short、char类型的整数再移位操作时会自动向上转为int类型后再操作移位。 2、int类型占32位long类型占64位当对这两个类型移位超出位数时相当于对要移动的位数取余再移位例如a32位取余为0相当于不移动a34取余为2相当于左移2位。long类型同理只是对64取余。 4. 应用 1、不利用中间值交换两个整数 可推导出的结论是a ^ b ^ a ba ^ b ^ c a ^ (b ^ c)。所以对于两个整数ab交换可以使用异或位运算。 public static void main(String[] args) {int a 5, b 3;System.out.println(a a \tb b);a a ^ b;b a ^ b;a a ^ b;System.out.println(a a \tb b); }输出结果 2、判断一个正数的奇偶性 x 1 0 则为偶数否则为奇数。因为整数的二进制表示后最后一位的0和1就表示了该值的奇偶性1之后相当于除了最后一位其他位全清0了最后一位若是1则与的结果才为1说明是奇数最后一位为0则与的结果是0说明是偶数。 3、判断一个正数是不是2的幂次方 使用n(n-1) 0则为偶数否则为奇数。因为2的次方数除了高位的一个1外后面的数据全部都是0也就是说2的次方数的二进制形式里只有一个1其他全部是0减1后得到的二进制1所在位变成01后的其他位都会变成1所以与原二进制每一位都不相同使用后结果为0则可以证明为偶数 4、计算一个二进制数中1的个数 int a 15; int count 0; while (a ! 0) {if ((a 1) 1) {count;}a a 1; } System.out.println(count);输出结果 通过1结果为1说明最末一位是1则可通过不断1并判断1的个数是否加1直到这个数的值变为0为止。
http://www.hkea.cn/news/14381403/

相关文章:

  • 开发网站教程本周最新新闻
  • 如何进行网站关键词优化网站建站怎么报价
  • 上海网站建设咨久久建筑网如何下载资源
  • 中国网站建设服务中心上海网站建设 s
  • 网站开发成本有哪些山西建设厅八大员查询网站
  • 网站文件保护怎么做wordpress导入sql失败
  • 十堰网站制作公司电话室内设计学校哪家好
  • 电脑系统做的好的网站如何让网站被收录
  • 中国建设网官方网站地址网站备案图标代码
  • 外贸网站 wordpress武夷山网站制作
  • 佛山网站建设电话html5手机网站开发区别
  • 南京制作企业网站给网站做插画分辨率
  • 做任务领取礼品的网站牡丹江整站优化
  • 流放之路做长老环的网站软件工程师发展前景
  • 网站有访问量 为什么没有询盘湖北响应式网页建设哪家有
  • 电商网站的支付接入该怎么做呢移动端开发用什么编程语言
  • 影视怎么建设网站物联网开发用什么语言
  • 世界500强企业愿景成都网站建设优化公司电话
  • 网站转微信小程序哪个网站做的简历最好
  • 把网站做成app多少钱建网站 主流软件
  • 品牌展示型网站有哪些福建泉州做网站公司
  • 做微信营销网站建设seo顾问公司
  • 网站seo策划百度百家官网入口
  • 做下载网站用什么程序好公司网络营销推广软件
  • 英语网站的栏目名称wordpress更换服务器ip
  • 大连h5建站wordpress如何添加搜索到主菜单
  • 海南省建设厅网站首页昆明网站建设公司排名
  • 福州建站价格淘宝上网站开发
  • 织梦 音乐网站做网站怎么注册营业执照
  • 西安道桥建设有限公司网站网站开发亿玛酷给力5