字面值常量

本文对比了C++和Java中的字面值常量,包括整型、浮点型和字符串等,并介绍了Java的基本数据类型及类型转换规则。

所有的编程语言中都有一种很重要的常量——字面值常量。这篇博客主要对比一下C++和java中的两种字面值常量,作为一个备忘。

C++

-整型
c++中主要有short、int、long、long long;十进制默认是有符号数,是后三者中尺寸最小的那个,对于八进制和十六进制,按int, unsigned int, long, unsigned long, long long, unsigned long long 顺序使用。

  • 浮点数类型
    默认为double
  • 字符串
    默认为c风格的字符串。

指定字面值的类型
整型

后缀最小匹配类型
uunsigned
llong
lllong long

浮点型

后缀类型
ffloat
llong double

附上一段在java中编译不通过的代码

#include <iostream>
using namespace std;

int main()
{
    float a = 3.14;//若放在Java中,float类型的无法接受3.14这一double类型的变量,将会编译报错,c++正常运行。
    cout << a<<endl;
}

Java

  • 整型
    java是要跨平台的,所以不同于c,对基本数据类型的位数进行了详细规定和设计。
    java没有任何unsigned类型!!!
类型字长备注
byte1字节常用于文件
short2字节不常用
int4字节10亿以内,默认字面值
long8字节统计全球人数
  • 浮点型
类型字长备注
float4字节6、7位有效数字
double8字节15、6位有效数字,默认字面值

此外,java 基本数据类型中还有char和boolean两种。

java中的类型转化
拓展(可以默认完成的)

基本原则
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double;

运算中的转化

单操作数运算符:

(1)当运算符为取正运算符(+)。取负运算符(-)或按位取反运算符(~)时,如果操作数为byte、char或short,则先被转换为int,再参与运算。
(2)当运算符为自动递增运算符(++)或自动递减运算符(–)时,如果操作数为byte,short或char,则不用先被转换为int,而是直接参与算术运算,且运算结果类型也不变。
(3)如果操作数为int或long,则无论运算符为何种单操作数运算符,均不发生类型转换,且运算结果类型也不变。

双操作数运算符:

(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。
(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。
(3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。
(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。也就是说,对于小于等于int类型的数据,要先转化成int在计算。

* 窄化(一般需要强制转化的)*

(省略)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值