随笔:位运算举例
来源:互联网 发布:json key 数字 编辑:程序博客网 时间:2024/05/19 13:43
package given.come.test;/** * * @author Given * */public class BitShiftDemo {public static void main(String[] args) {/** * 如果首位是正数,源码、反码、补码一样, * 负数的话,源码取反得到反码,反码+1进位形成补码 * 然后再进行位运算 */int a=-16,b=16;//定义整型变量a,赋初值为-16,定义整型变量b,赋初值为16,System.out.println("**************************************");System.out.println("a的二进制为:\t"+Integer.toBinaryString(a));//将整型a转换为二进制并输出System.out.println("a左移1位后各位为:\t"+Integer.toBinaryString(a<<1));//a位运算左移1位后,装换为二进制并输出System.out.println("\t\t"+a+"a<<2="+(a<<2));//输出a通过位运算左移两位后得到的十进制数 //源码10000000000000000000000000010000-16 //反码11111111111111111111111111101111+1 //补码11111111111111111111111111110000/*1210^21200 2^2 11111111111111111111111111000000 11111111111111111111111110111111 10000000000000000000000001000000*/System.out.println("**************************************");System.out.println("a的二进制为:\t"+Integer.toBinaryString(a));//将整型a转换为二进制并输出System.out.println("a右移1位后各位为:\t"+Integer.toBinaryString(a>>1));//a带符号右移1位后,转换为二进制并输出System.out.println("\t\t"+a+"a>>2="+(a>>2));//输出a带符号右移2位后得到的十进制数//补码 11111111111111111111111111110000//右移1位 11111111111111111111111111111000//右移2位 10000000000000000000000000000100 -2^2=-4System.out.println("**************************************");System.out.println("a的二进制为:\t"+Integer.toBinaryString(a));//将整型a转换为二进制并输出System.out.println("a右移1位后各位为:\t"+Integer.toBinaryString(a>>1));//a带符号右移1位后,转换为二进制并输出System.out.println("\t\t"+a+"a>>>2="+(a>>>2));//输出a不带符号右移2位后得到的十进制数//补码 11111111111111111111111111110000//右移1位 11111111111111111111111111111000//不带符号右移2位001111111111111111111111111111001073741820System.out.println("**************************************");System.out.println("b的二进制为:\t"+Integer.toBinaryString(b));//将整型b装换为二进制并输出System.out.println("b左移1位后各位为:\t"+Integer.toBinaryString(b<<1));//b位运算左移1位后,转换为二进制并输出System.out.println("\t\t"+b+"<<2="+(b<<2));//输出b位运算左移2位后得到的十进制数//源码 00000000000000000000000000010000 2^4=16//00000000000000000000000000100000 左移1位 2^5=32//00000000000000000000000001000000 左移2位2^6=64System.out.println("**************************************");System.out.println("b的二进制为:\t"+Integer.toBinaryString(b));//将整型b装换为二进制并输出System.out.println("b右移1位后各位为:\t"+Integer.toBinaryString(b>>1));//b位运算右移1位后,转换为二进制并输出System.out.println("\t\t"+b+"b>>2="+(b>>2));//输出b位运算右移2位后得到的十进制数//源码 00000000000000000000000000010000 2^4=16//00000000000000000000000000001000 右移1位 2^3=8//00000000000000000000000000000100右移2位 2^2=4System.out.println("**************************************");System.out.println("b的二进制为:\t"+Integer.toBinaryString(b));//将整型b装换为二进制并输出System.out.println("b右移1位后各位为:\t"+Integer.toBinaryString(b>>1));//b位运算右移1位后,转换为二进制并输出System.out.println("\t\t"+b+"b>>>2="+(b>>>2));//输出b无符号右移2位后得到的十进制数System.out.println("**************************************");//源码 00000000000000000000000000010000 2^4=16//00000000000000000000000000001000 右移1位 2^3=8//00000000000000000000000000001000 无符号右移2位 2^2=4}}
阅读全文
0 0
- 随笔:位运算举例
- 位运算应用举例
- 位运算举例
- 位运算简单举例
- 逆向随笔 - 位运算
- 位运算综合举例1
- java位运算应用举例
- 关于位运算的随笔
- (随笔)位运算和移位运算D
- Shell 中位运算符的应用(特别举例按位非)
- Shell 中位运算符的应用(特别举例按位非)
- 位段举例
- 运算符重载举例
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 基于Windows的线程使用
- ZeroMQ入门示例
- ssh主机互信机制
- Java复习笔记---异常,断言,日志和调试
- MyBatis学习笔记(2)—— XML映射文件の结果集(Result Maps)中的简单结果映射
- 随笔:位运算举例
- 入门学习webpack打包工具(一)
- 设计原则-迪米特法则
- 激活函数
- 网络编程(二)
- HDU
- pta 1001 害死人不偿命的(3n+1)猜想
- 文章标题
- Java学习2:Java垃圾回收机制Garbage Collection(GC)