整型数从最小到最大取值,二进制变动机制

public class BitTestMaxAndMin {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int min=0x80000000;
        //Integer包装的整数类中可取的最小值为-2147483648
        int max=0x7fffffff;
        //Integer包装的整数类中可取的最大值为2147483647
        System.out.println("最小整数为:"+min);
        System.out.println("二进制表示:"+Integer.toBinaryString(min));//用二进制表示最小的整数,结果为一个1后跟31个0。左数第一个表示正负,1表示为负数
        System.out.println("右移一位后:"+Integer.toBinaryString(min>>>1));
        System.out.println("转回十进制:"+(min>>>1));//右移,左侧用0补位
        System.out.println();

        min--;
        System.out.println("最小整数-1后为:"+min);
        System.out.println("用二进制表示为:"+Integer.toBinaryString(min));//用二进制表示最小的整数,结果为32个1,左数第一个1即32位表示正负,1表示为负数
        System.out.println("将此数右移一位:"+Integer.toBinaryString(min>>>1));//右移,左侧用0补位
        System.out.println("转换为十进制为:"+(min>>>1));
        System.out.println("位的非运算后为:"+(~min>>>1));
        System.out.println("对应二进制数为:"+Integer.toBinaryString(~min>>>1));

        System.out.println();

        System.out.println("最大整数为:"+max);
        System.out.println("二进制表示:"+Integer.toBinaryString(max));//用二进制表示最大的整数,结果为31个1
        System.out.println("valueOf方法测试:"+Integer.valueOf(Integer.toBinaryString(max), 2));//注意此句能运行
        System.out.println("0后跟31个1的测试:"+Integer.valueOf("01111111111111111111111111111111", 2));//等同于上句
        System.out.println();

        System.out.println("十进制数取:"+0);
        System.out.println("二进制表示为:"+Integer.toBinaryString(0));
        System.out.println("对0进行位的非运算,十进制表示为:"+~0);
        System.out.println("用二进制表示为:"+Integer.toBinaryString(~0));
        System.out.println("进行右移表示为:"+Integer.toBinaryString(~0>>>1));//~0即为-1右移一位左侧补0后,显示为31个1
        System.out.println("转换为十进制为:"+(~0>>>1));//将这个移位后的二进制数用十进制表示,即Integer能取到的最大值max
        /**
         * 故而可知正整数从0向2147483647取值是由31个0表示的二进制不断加一完成的
         * 而负整数从-2147483648向-1取值也是由1后跟着31个0表示的二进制不断加一完成的
         */

        /*这里的1能打到31位,已经表示为最大的整数2147483647
         *如果打到32位,并且第一位是1的话,运行Integer中的valueOf方法会报错
         *所谓的32位,第一位用来表示正负,0表示为正数,1表示为负数
         *System.out.println(Integer.valueOf(Integer.toBinaryString(min), 2));的valueOf的参数有32位且都为1,不能运行
         */
    }

}
时间: 2024-10-27 16:58:43

整型数从最小到最大取值,二进制变动机制的相关文章

java整型byte,short,int,long取值范围大小

 byte 1个字节 short 2个字节 int 4个字节long 8 个字节 varchar 可变长度的非Unicode数据,最长为8000个字符nvarchar 可变长度Unicode数据,最长为4000个字符char 固定长度的非Unicode数据,最长为8000个字符nchar 固定长度的Unicode数据,最长为4000个字符 非Unicode字符串的数据类型 包括char ,varchar,text; Unicode字符串的数据类型 包括nchar ,nvarchar,ntext;

黑马程序员---Java 基本数据类型取值范围讲解

-------android培训.java培训.期待与您交流! ---------- java中的类型概念名的说法不一.让我很是迷茫,我个人的理解整理,如有错误还请高人指点,! 一.Java的类型词语理解: 1) 原始数据类型,简单类型,基本类型都是一个含义: 2)复合类型,扩展类型,复杂类型.引用类型都是一个含义: 3)浮点类型,实数.实型都是一个含义: 4)逻辑型.布尔型都是一个含义: 阅读时需要理解: 定点:定点的意思是把小数点定在末尾,小数点后没有数字的数据,Java中通常把它们称为整数

I2C上拉电阻的取值

对于I2C上拉电阻,在电路图中经常看到的取值是4.7KΩ,但是一直不知道这个依据,虽然现在依然不是很明白,现在只是先记录下当前的所知道的. 从I2C规范中得知,上拉电阻的取值跟总线电容.上升沿时间是有一定关系的,Rp的最小.最大取值的公式都不一样.并且规范中也只给出了标准.快速.快速+三种模式,高速.极速两种模式并没有给出,不知道是否可以用同样的公式?但是从计算的最大最小Rp,及一般产品上I2C设备数量也不是非常多,所以4.7K一般不会出现信号完整性问题.如下是规范中的内容. 原文地址:http

ACCESS常用数字类型的说明和取值范围

下面是ACCESS常用数字类型的说明和取值范围列表明供参考 数字类型                 范围 Byte(字节)            介于 0 到 255 之间的整型数. Integer(整型)          介于 –32,768 到 32,767 的短整型数. Long(长整型)         介于 –2,147,483,648 到 2,147,483,647 的长整型数. Currency(货币)      介于-922,337,203,685,477.5808 到 92

java数据类型,取值范围,引用类型解析

与javascript不同,Java是强类型语言,在定义变量前需要声明数据类型.主要分两种数据类型:基本数据类型和引用数据类型. 1.基本数据类型分析: 基本数据类型 数值型 整数型 byte字节类型 占8位,用于表示最小数据单位,取值范围为-128~127(代表以存储数字的大小) short 短整型  16位,很少用,取值范围为-32768 ~ 32767 int 整数类型 32位,常用,取值范围为-2147483648 ~21474836487 long 长整形  64位,常用,取值范围为-

mysql中bigint、int、mediumint、smallint 和 tinyint的取值范

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下:1.bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是0到 18446744073709551615.一位为 8 个字节. 2.int 一个正常大小整数.有符号

使用指针比较整型数据的大小

该C实例是一个比较简单的实例,但是在该实例中,重点介绍了C语言中比较常用的也是容易出错的指针变量,其中包括指针变量的赋值,指针变量的运算等等.该实例实现了通过使用指针变量来比较3个整形数据,使其从小到大排列,实现比较简单,下面附上我的代码: #include <stdio.h> /** * 通过指针比较三个整数的大小 * @brief main * @return */ /** * 指针,即为变量的地址:指针变量,即数值为 * 指向变量地址的变量 * 指针变量的类型: * 对指针变量的类型说明

mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下:1.bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是0到 18446744073709551615.一位为 8 个字节. 2.int 一个正常大小整数.有符号

C语言整型数据(整数)

整型数据即整数. 整型数据的分类 整型数据的一般分类如下: 基本型:类型说明符为int,在内存中占2个字节. 短整型:类型说明符为short int或short.所占字节和取值范围均与基本型相同. 长整型:类型说明符为long int或long,在内存中占4个字节. 无符号型:类型说明符为unsigned.  无符号型又可与上述三种类型匹配而构成: 无符号基本型:类型说明符为unsigned int或unsigned. 无符号短整型:类型说明符为unsigned short. 无符号长整型:类型