android开发:c++代码翻译成java的基本类型转换,一张表就搞定

android开发:c++代码翻译成java的基本类型转换,一张表就搞定

 

user:Linvest

 

 

一、常规转换,一表即可(紫色字体自行评估是否需要更高精度的单位,正常情况下适用):

 

C++类型存储大小(32位机)值范围

楚                       汉

 

 

 

 

 

 

 

 

 

 

河                        界

java类型存储大小值范围 
void0无值域byte1-128到127 
bool1true和falseshort2-32768到32767 
char1-128到127int4’-2147483648到2147483647 
unsigned char10到255long8-9223372036854775808到9223372036854775807 
signed char1-128到127float4-3.4E38到3.4E38 
short2-32768到32767double8-1.7e308到1.7e308 
unsigned short20到65535char20到65535 
wchar_t(unsigned short)20到65535boolean1true和false 
int4-214783648到2147483647    
unsigned int40到4294967295    
long4-214783648到2147483647    
unsigned long40到4294967295    
long long80-18446744073709552000    
float4-3.4E-38到3.4E+38    
double8-1.7E-308到1.7E+308    
long double16-3.4E-4932到1.1E+4932    
        
C++类型用合适的java代替(用于C++代码翻译成java) 
        
C++类型存储大小(32位机)值范围 java类型存储大小值范围 
void0无值域 void0无值域作为参数删除,作为返回值保留,作为指针用object
bool1true和false boolean1true和false 
char1-128到127 int4-2147483648到2147483647不用byte的原因:容易记,且如果用byte,那unsigned char会显得很奇怪
unsigned char10到255 int4-2147483648到2147483647 
signed char1-128到127 int4-2147483648到2147483647 
short2-32768到32767 int4-2147483648到2147483648不用short的原因:容易记,且如果用short,那unsigned short会显得很奇怪
unsigned short20到65535 int4-2147483648到2147483649 
wchar_t(unsigned short)20到65535 int4-2147483648到2147483650 
int4-214783648到2147483647 int4-2147483648到2147483648 
unsigned int40到4294967295 int4-2147483648到2147483648基于C+=代码太多是uint32_t了,用int不会超的(算法除外)
long4-214783648到2147483647 long8-9223372036854775808到9223372036854775807 
unsigned long40到4294967295 long8-9223372036854775808到9223372036854775807 
long long80-18446744073709552000 long8-9223372036854775808到9223372036854775807用得不多,实在不行换成损精度的float(算法除外)
float4-3.4E-38到3.4E+38 float4-3.4E38到3.4E38 
double8-1.7E-308到1.7E+308 double8-1.7e308到1.7e308 
long double16-3.4E-4932到1.1E+4932 xxxxxxxxxjava觉得心好累

问:unsigned int为何转成int,范围大变小损精度啊?

解:大部分情况适用,C++程序员都很喜欢用无符号类型的,实际上也不会用到很大的值,

实在是需要大数,就用float或double吧;

 

问:long long类型为何转成long,而不转换float?

解:同上,没用过,可能算法上会用到吧,以前的算法工程师同事也没见他用过那么大的数

 

问:long double不能转了

解:C++事真多,java没办法了,还是用jni吧;(本人也是C++开发人员-_-)

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值