精华内容
下载资源
问答
  • 整型常量

    千次阅读 2020-02-28 18:19:10
    整型常量的三种表示形式: 十进制整数:由数字0~9和正负号表示。 八进制整数:由数字0开头,后跟数字0~7表示。 十六进制整数:由0x或0X开头,后跟0~9,a~f,A~F表示。 3.3.19.1 vs2013查看整型常量 (1)代码...

    概述:

    整型常量的三种表示形式:

    十进制整数:由数字0~9和正负号表示。
    八进制整数:由数字0开头,后跟数字0~7表示。
    十六进制整数:由0x或0X开头,后跟0~9,a~f,A~F表示。


    3.3.19.1  vs2013查看整型常量

    (1)代码部分

    1. 运行结果显示

     

    3.3.19.2长整型常量:789L、017L、0x12aL(用l或L引出)

    代码注释:

    3.3.19.3 用二进制整数表示案例

    展开全文
  • 我下图代码第五行和第九行分别定义了一个整型变量和一个整型常量:static final int number1 = 512;static int number3 = 545;Java程序员都知道两者的区别。下面我们就用javap将.class文件反编译出来然后深入研究...

    我下图代码第五行和第九行分别定义了一个整型变量和一个整型常量:

    static final int number1 = 512;

    static int number3 = 545;

    Java程序员都知道两者的区别。

    format,png

    下面我们就用javap将.class文件反编译出来然后深入研究Java里整型变量和整型常量的区别。

    使用命令行javap -c constant.ConstantFolding查看.class文件反编译出来的字节码:

    format,png

    结果:

    format,png

    这些字节码指令的说明,在wikipedia里有说明:

    咱们Java程序员不需要把它们都背下来,只需要把这个网页收藏起来,要用的时候当成字典来用就行:

    format,png

    sipush 545: 将整数545放置到栈上

    putstatic #16:

    将栈上的值545赋给当前类的静态字段里。

    format,png

    那么putstatic #16里的#16代表什么含义?

    我们再用javap -v 参数反编译,就能看到这个类的常量池(Constant pool). 大家看下图蓝色高亮的一行:

    constant/ConstantFolding.number3:I

    说明#16代表类constant.ConstantFolding的成员number3,类型为I。

    format,png

    至此,这两行字节码指令联合起来,实际对应了我们写的Java代码:

    static int number3 = 545;

    我们继续分析javap反编译出来的字节码。

    format,png

    aload_0: 将序号为0的本地变量的引入加载到栈上

    invokespecial: 调用对象实例上的成员方法,如果有返回值,方法的返回值存储到栈上。具体调用的方法由#标识,可在常量池中查询到对应的方法名。

    ldc: 将常量池上代号为#的常量的值从常量池加载到栈上。

    我们从下图的常量池列表能发现,序号为#29的常量318976正是整型常量number1(512)和整型常量(623)的积。由此可以看出, number1 * number2这个表达式,因为参与运算的两个操作数通过STATIC和FINAL修饰成为了整型常量,因此其积在编译期就能得到,所以编译器在编译时就计算出来,存储在变量池里,序号为#29。

    format,png

    那么整型变量做乘法运算,对应的字节码又是什么样的呢?

    从下图序号为3的code开始:

    getstatic #16: 将类的静态成员#16加载到栈上。#16对应的成员为number3,值为545。

    getstatic #18: 将类的静态成员#18加载到栈上。#18对应的成员为number4,值为619。

    imul: 执行栈上两个整数的乘法运算。

    istore_2: 将结果保存到局部变量2里。

    此时,我们Java代码里的int product2 = number3 * number4就执行完了。

    大家看到的剩下的蓝色字节码,都对应了下面这行打印语句。

    System.out.println("Value: " + product1 + " , " + product2);

    从这些字节码也能看出,Java里我们直接用加号进行字符串拼接操作,Java编译器在编译时,自动使用了StringBuilder进行优化。

    既然整型变量的乘积需要打印出来,因此字节码的iload_2将之前用istore_2保存在局部变量2中的计算结果又加载到栈上,这样乘积结果最后就能输出了。

    format,png

    希望通过这个简单的例子,大家能学会用javap去深入理解一些Java和JVM的细节

    展开全文
  • 整型常量和实型常量

    千次阅读 2016-05-26 11:44:05
    在 C 语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。 (1)十进制整型常量 这种常量只能出现 0~9 的数字,且可带正、负号。例如: 0 1 364 28 -34 (2)八进制整型常量 ...
    整型常量和实型常量
    1.整型常量
    在 C 语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。
    (1)十进制整型常量
    这种常量只能出现 0~9 的数字,且可带正、负号。例如:
    0 1 364 28 -34
    (2)八进制整型常量 这种常量是以数字 0 开头的八进制数字串。其中数字为 0~7。例如:
    0111(十进制 73) 011(十进制 9) 0123(十进制 83)
    (3)十六进制整型常量
    这种常量是以 0x或 0X开头的十六进制数字串。其中每个数字可以是 0~9、a~f或 A~中的数字或英文字母。例如:
    0x11(十进制 17) 0Xa5(十进制 165) 0x5a(十进制 90)
    以上三种进制的常量可用于不同的场合。大多数场合中采用十进制常量,但当编写系统程序时,如表示地址等,常用八进制或十六进制常量。
    一般情况下,编译程序会根据常量的数值分辨出常量是 int 还是 long int 类型。但是有些场合需要明确地指出它是否属于 long int 类型此时,可以在整型常量后附加一个字母 l或 L 强制它为 long int 类型。例如,4126l,78l,5L 等。
    2.实型常量
    实型常量有两种表示形式:一种是十进制小数形式,另一种是指数形式。
    (1)十进制小数形式
    十进制小数形式为包含一个小数点的十进制数字串。此类实型常量小数点前或后可以没有数字,但不能同时没有数字。例如:
    3.14159, 89, 56.0, 78., -3.0, 0.0
    (2)指数形式
    指数形式的格式由两部分组成:十进制小数形式或十进制整型常量部分和指数部分。其中指数部分是在 e 或 E(相当于数学中幂底数 10)后跟整数阶码(即可带符号的整数指数)。例如:
    1e15 //表示数值 1×1015
    0.35e+1 //表示数值 0.35×101

    78e-1 //表示数值 78×10-1

    本文 -来自吉首大学网络工程 许诗文

    展开全文
  • C++中静态变量、常量、静态整型常量、静态非整型常量、引用变量的初始化方法

    C++中静态变量、常量、静态整型常量、静态非整型常量、引用变量的初始化方法

    先看一段代码

    class CTypeInit{
    public:
    	CTypeInit( int c):m_c(c),m_ra(c){
    	}
    private:
    
    	int m_a;				//通过初始化列表初始化,
    							//或者构造函数初始化
    	/*引用*/
    	int &m_ra;				//只能通过初始化列表初始化
    
    	/*静态变量*/
    	static int m_b;			//不能通过初始化列表初始化,
    							//不能在类内进行初始化,
    							//不能在构造函数中初始化,
    							//只能在类外初始化
    
    	/*常量*/
    	const  int m_c;			//只能通过初始化列表初始化,
    							//不能在类内进行初始化,
    							//不能在构造函数中初始化,
    							//不能在类外初始化
    
    	/*静态整型常量*/
    	static const int m_d;	//(整型)能否在类中初始化,取决于编译器
    							// 能在在类外初始化,不能带static
    
    	/*静态非整型常量*/
    	static const double m_e;//(double型)能否在类中初始化,取决于编译器
    							// 能在在类外初始化,不能带static
    };
    
    //静态成员变量,必须在类外初始化,且要去掉static关键字
    int CTypeInit::m_b = 6;
    const int CTypeInit::m_d = 6;
    const double CTypeInit::m_e = 3.1415926;
    
    int main()
    {
    	CTypeInit obT(2);
    	return 0;
    }

    总结:根据上述代码,C++中一下5中类型的初始化方法

    1、静态变量,只能在类的定义外初始化,不能通过初始化列表初始化,不能通过构造函数初始化,不能在类的定义中初始化;

    2、常量,只能通过初始化列表初始化,不能在类的定义外(内)初始化,不能通过构造函数初始化。

    3、引用变量,只能通过初始化列表初始化且必须用变量初始化,不能在类的定义外(内)初始化,不能通过构造函数初始化。

    4、静态整型常量,能在在类外初始化,不能带static,(整型)能否在类中初始化,取决于编译器

    5、静态非整型常量,能在在类外初始化,不能带static,(double型)能否在类中初始化,取决于编译器

    4,5 在类定义内部初始化时,在VC6.0中都不能编译通过,而在GCC中都可以编译通过,所以4,5在不同编译器下有不同的结果,但1,2,3是确定的。当然,如果不习惯类内初始化,可以将静态常量和静态变量的初始化统一起来,将静态常量和静态变量的初始化全部都移动类定义之外初始化(推荐使用这种方式)。

    另外,如果编译器不支持类内初始化,而此时类在编译期又恰恰需要定义的成员常量的值,身出如此左右为难的境地,我们应该考虑使用enum!因为enum本质也是一个整型常量。

    class student{
    private:
    	enum{NUM_LEGTN = 6};
    	int score[NUM_LEGTN];
    };


    展开全文
  • 整型常量 Java语言整型常量四种表现形态: 十进制整数:如99,-500,0 八进制整数:以0开头。如015 十六进制整数:以0x或0X开头。如0x15或0X15 二进制整数:以0b或0B开头。如0b01110011或0B01110011 ...
  • c语言中的整型常量和实型常量

    千次阅读 多人点赞 2013-12-30 19:16:08
    c语言中的整型常量和实型常量  整型常量和实型常量 1.整型常量 在 C语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三 种表示形式。 (1)十进制整型常量 这种常量只能出现 0~9 ...
  • C语言的整型常量与实型常量

    万次阅读 多人点赞 2017-07-16 12:15:13
    一、整型常量
  • Java整型变量和整型常量

    千次阅读 2020-01-26 00:01:32
    2 Java 语言整型常量的四种表示形式 3 长整型常数的声明 1 整型分类 整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反...
  • c语言中整型常量和实型常量的写法

    千次阅读 2020-06-12 09:43:38
    十进制:平常的写法,不用加后缀,后缀 ...长整型常量:后面加字母L long num = 10L; 无符号整型常量:末尾加U unsigned num = 10U; 无符号长整型常量:后缀为LU unsigned long num = 10LU; ...
  • 整型常量和整型变量

    千次阅读 2019-04-28 03:09:01
    /** * 整形常量和整型变量 ... * java语言整型常量的四种标识形式 * 十进制整数:如:99、-500、0 * 八进制整数:要求一0开头,如:015 * 十六进制数:要求以0x或者0X开头,如:0x15 ...
  • 1.下列字符列中,合法的长整型常量是:【】(A)4.18e3(B)0.46793(C)4L(D)9567382.设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是:【】(A)0,...1.下列字符列中,...
  • 请教前辈们,这个问题怎么结局下看书看到这个java整型常量和整型变量的问题我自己输入一段代码调试publicclassintegerExample{publicstaticvoidmain(Stringargs[]){bytebyteVariable;...请教前辈们,这个问题怎么...
  • 整型常量在C语言中,一般分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式:十进制整型常量:只能出现 0~9 的数字,且可带正、负号。例如:0 1 364 28 -34八进制整型常量:以数字0 开头的八进制...
  • 整型常量在C语言中,一般分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式:十进制整型常量:只能出现 0~9 的数字,且可带正、负号。例如:0 1 364 28 -34八进制整型常量:以数字0 开头的八进制...
  • 整型常量默认数据类型是int,当数值超过int时,类型会变成long,超过long会报warning; 符号常量默认数据类型是int,当数值超过int时,类型会变成long,超过long会报warning; 枚举常量默认数据类型是int,当数值...
  • 我下图代码第五行和第九行分别定义了一个整型变量和一个整型常量: static final int number1 = 512; static int number3 = 545; Java程序员都知道两者的区别。 下面我们就用javap将.class文件反编译出来然后...
  • 嗨喽C语言!整型常量

    2019-02-03 21:43:31
    整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如0x36。 2.分类 (1)基本整型。在16位机中,...
  • 我下图代码第五行和第九行分别定义了一个整型变量和一个整型常量:static final int number1 = 512;static int number3 = 545;Java程序员都知道两者的区别。下面我们就用javap将.class文件反编译出来然后深入研究...
  • 9.17整型常量

    2015-09-23 08:45:50
     1,整型常量,就是一般的整数吧。  2,实型常量,又分为两种十进制小数形式,由数字和小数点组成,如1.453  3,字符常量,分为普通字符和转义字符,普通字符要用单撇号括起来,如‘a’ ‘3’ ‘!’不能写...
  • C语言中整型常量的表达方式

    万次阅读 2019-08-21 17:20:38
    在C语言中,整型常量可用以下三种形式表示: 1. 十进制整数,即按日常接触的数字形式正常表达。如123、-120; 2. 八进制整数,以0开头的数字进行表达。如0123表示八进制数123,即(123)8,其值为1*82+2*81+3*80,...
  • C语言整型常量.ppt

    2020-06-20 22:37:56
    常量:在程序运行时其值不能被改变的量 变量:在程序运行时其值能被改变的量.... 定义x,y为整型变量 整型变量对应的数据类型 整型变量 基本整型 int 占内存2B 短整型 short int 或 short 占内存2B 长整型 longt int
  • 整型常量的不同进制表示 计算机只能存储二进制,也就是0和1,对应的是高低电频。 计算机1个字节 byte=8位 bit,1位即二进制的1位,存储0或1 int型,大小为4字节,即32位 打印的时候: printf(“a=%d\n”,a) %d是十...
  • 我们知道地址(指针)其值是个整型常量,所以,我们可以将某个整型常量赋值给一个指针,当然需要先强制类型转换一下。 例1: int *myfunc() { return (void*)0; } if(myfunc()==0) //直接与0进行比较了 { //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,993
精华内容 2,797
关键字:

整型常量