博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java学习(11)位与进制
阅读量:4074 次
发布时间:2019-05-25

本文共 1282 字,大约阅读时间需要 4 分钟。

 * @笔记:
 * 一、二进制
 *    1.原码,反码,补码
 *      (1)二进制最高位是符号位,0表示正数,1表示负数。
 *      (2)正数的原码,反码,补码都是一样的。
 *      (3)负数的反码是原码除符号位不变,其他位取反。
 *      (4)负数的补码 = 负数的反码 + 1.
 *      (5)0的反码和补码都是0。
 *      (6)java没有无符号数。
 *      (7)在计算机运算时,都是以补码的方式运算。
 *      例: 1-2 = 1+(-2) => 0000 0001 + 1000 0010 (原码)=> 0000 0001 + 1111 1110(补码)
 *          0000 0001
 *      +   1111 1110
 *      =   1111 1111 (补码)   =>    1000 0001(原码)    =>    -1
 *    2.基本运算
 *    &(按位与),|(按位或),^(按位异或),~(按位取反)
 *    移位运算符:
 *    >>算数右移:低位溢出,符号位不变,并用符号位补溢出的高位
 *    <<算数左移:高位溢出,符号位不变,低位补0。
 *    >>>逻辑右移:低位溢出,高位补0。
 *

 */

package com.shuiyixin1;public class learnJ_002weiyunsuan {	/**	 * @作者:shuiyixin	 * @日期:2018.01.31	 * @内容:位运算,二进制,移位运算符	 * 	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		byte a = 1>>2;  //0		//1的补码是0000 0001,右移两位变成:0000 0000,即0				byte b = -1>>2; //-1		//-1的补码是 1111 1111,右移两位变成1111 1111,化为原码得:1000 0001,即-1				byte c = 1<<2;  //4		//1的补码是0000 0001,左移两位变成:0000 0100,即4				byte d = -1<<2; //-4		//-1的补码是 1111 1111,左移两位变成1111 1100,化为原码得:1000 0100,即-4				byte e = 1>>>2; //0		//1的补码是0000 0001,右移两位变成:0000 0000,即0		System.out.println("1>>2 = " + a);		System.out.println("-1>>2 = " + b);		System.out.println("1<<2 = " + c);		System.out.println("-1<<2 = " + d);		System.out.println("1>>>2 = " + e);		System.out.println("1>>2 = " + (~2));		System.out.println("-13>>2 = " + (-13>>2));	}}

转载地址:http://yyyni.baihongyu.com/

你可能感兴趣的文章
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
程序员最核心的竞争力是什么?
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>