两个int型和一个long型的转换:

long now=1368257088802L;        
         int low = (int) (0xFFFFFFFFL & now);    
        int    heigh = (int) ((0xFFFFFFFF00000000L & now) >> 32);        
        System.out.println("long转双int:"+heigh+","+low);

long lowL=low;
        long heighL=heigh;        
        long now2=    ((long)lowL & 0xFFFFFFFFl) + (((long)heighL << 32) & 0xFFFFFFFF00000000l);    
        System.out.println("双int转long:"+now2);
        
        System.out.println("now:"+now);
        ByteBuffer buffer= ByteBuffer.allocate(100);
        buffer.putLong(now);        
        buffer.flip();
        
        long three=buffer.getInt();
        long four=buffer.getInt();        
        System.out.println(three+","+four);
        long now3=(((three<<32)&0xFFFFFFFF00000000l)+(four& 0xFFFFFFFFl));
        System.out.println("高位+低位:"+now3);

Byte aa='\n';
        System.out.println(aa);
        
        int value=61156;
         ByteBuffer byte_buffer= ByteBuffer.allocate(4);        
         byte_buffer.putInt(value);
         byte_buffer.flip();
    
         byte  aa1=byte_buffer.get();        
         byte  aa2=byte_buffer.get();        
         byte  aa3=byte_buffer.get();//大于128的byte的补码为负值,小于128的byte为正值        
         byte  aa4=byte_buffer.get();        
         System.out.println(aa1+","+aa2+","+aa3+","+aa4);
        
         int test=0;
         test+=( aa1<<24 &0xFF000000);
         test+=(aa2<<16 &0xFF0000);
        // test+=(aa3<<8 & 0xFF00);//一直是正确的
        // test+=(aa3 & 0xFF)<<8;//一直是正确的
         test+=( aa3 <<8 );//当为负值时,是错误的;只有为正值是才是正确的
         test+=( aa4&0xFF)  ;
        
         System.out.println(test);
        
         //转换成二进制
         System.out.println( Integer.toBinaryString(aa4 ) +","+aa4  );
         System.out.println( Integer.toBinaryString(aa4 & 0xFF)+","+(aa4 & 0xFF)   );
        
         System.out.println("<---------------------分割线-------------------------->");
         int test_byte=129;
         byte byte_test=(byte)(test_byte);
         System.out.println( Integer.toBinaryString(byte_test ) +","+byte_test  );
         System.out.println( Integer.toBinaryString(byte_test & 0xFF)+","+(byte_test & 0xFF)   );
         int temp=1;
         if((byte_test & temp)>0)
         {
             System.out.println("---");
         }
        
        
         System.out.println("<---------------------分割线-------------------------->");
         int a_255=128;
         byte test_1=(byte)(a_255);
         System.out.println("a_255:"+(test_1 &0xFF) );
         System.out.println("a_255:"+(test_1 ) );

个人备注:转换后的二进制的表示数值的有效位是一样的,高位是补码的填充。

java中关于二进制的初步。的更多相关文章

  1. Java中的二进制及基本的位运算

    Java中的二进制及基本的位运算 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二 ...

  2. java中的二进制

    (1)按位与运算 & 1 & 1 = 1, 0 & 1 = 0 51 & 5  即 0011  0011 & 0000  0101 =0000 0001 = 1 ...

  3. 在Java中关于二进制、八进制、十六进制的辨析

    八进制数中不可能出7以上的阿拉伯数字.但如果这个数是123.是567,或12345670,那么它是八进制数还是10进制数?单从数字的角度来讲都有可能! 八进制 所以在Java中规定,一个数如果要指明它 ...

  4. Java中处理二进制移位

    我相信,这篇文章读起来会相当有趣. 文章中编程语言是Java,用Java的原因:第一,Java不做数据溢出校验,这样我们可以忽略溢出异常:第二,Java普及率比较高,就像是python或shell,几 ...

  5. java中表示二进制、八进制、十进制、十六进制,double、float、整型

    java里不能这样表示二进制,只能是   8,10,16进制  8:         前置   0  10:      不需前置 16:      前置   0x   或者   0X double:2 ...

  6. 我的Android进阶之旅------>对Java中注释/**@hide*/的初步认识

    今天写一个调节系统背光亮度的时候,参考了Android中的Setting源码,在源码中有这么一段代码: private static final int MAXIMUM_BACKLIGHT = and ...

  7. java中表示二进制、八进制、十进制、十六进制

    1.进制 进制是一种记数方式 ,可以用有限的数字符号代表所有的数值.由特定的数值组成. 2.进制的表现形式 二进制: 由0和1两个数字组成. 八进制: 由0-7数字组成,为了区分与其他进制的数字区别, ...

  8. java中使用二进制进行权限控制

    基本概念 package test; publicclass Rights { publicstaticvoid main(String[] args) { int a=1; // 001 状态a i ...

  9. Java中转换为二进制的几种实现

    public class HexUtil { private static final String[] DIGITS_UPPER = {"0", "1", & ...

随机推荐

  1. java中异常和集合

    1. java中处理错误情况有两种,1  Error,2  Exception error是无法处理的,Exception是可以处理的情况. Exception中又有两种情况,RuntimeExcep ...

  2. django1.8forms读书笔记

    一.HttpRequest对象的一些属性或方法 request.path,The full path, not including the domain but including the leadi ...

  3. rsync + inotify-tools实现文件的实时同步

    文章摘自:http://lxw66.blog.51cto.com/5547576/1331048 rsync 帮助文档:http://man.linuxde.net/rsync 最近有个想法就是部署一 ...

  4. ISE和Modelsim联合仿真(详细步骤讲解)

    ISE和Modelsim联合仿真(转) 地址:http://www.cnblogs.com/feitian629/archive/2013/07/13/3188192.html 相信很多人会遇到过这个 ...

  5. pause和resume

    CCSet *m_pPausedTargets;类的成员变量 void CCNode::schedule(SEL_SCHEDULE selector, float interval, unsigned ...

  6. nyoj116 士兵杀敌(二)树状数组 插点问线

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常想知 ...

  7. xslt转换xml

    实现json--> xml --(xlst)--> xml pom依赖 <dependency> <groupId>net.sf.json-lib</grou ...

  8. LeetCode: Sort Colors 解题报告

    Sort ColorsGiven an array with n objects colored red, white or blue, sort them so that objects of th ...

  9. 教程-Delphi中比较两个对象是否一致及地址是否相同

    资料说明: 1.http://blog.csdn.net/diligentcatrich/article/details/7077294 说明: 实例代码: procedure TForm1.btn1 ...

  10. eclipse中使用maven创建项目JDK版本默认是1.5解决方法

    请看解决方案: 1. 修改maven的settings.xml文件. 添加以下行,jdk版本改为自己需要的版本: <profile> <id>jdk-1.7</id> ...