精华内容
下载资源
问答
  • Long 数据类型的比较

    2016-10-18 17:44:22
    Long数据类型判断

    楼主傻傻的以为用 “==”号能判断

    结果就悲剧了

    因为真的不行呐(=@__@=)

    Long 类型指的是 java.util.Lang 对象,如果使用“==”号来比较,得到的结果不出意外应该是为false,是因为 == 判断的是两个对象的内存地址,意思就是比较是否是同一个对象。(当然如果比较的目的就是这样就没得说啦)

    所以用什么比较呢?

    • 列表内容

    使用 Long 类型中的 longValue() 方法进行比较,如

        public boolean compareLong(Long A, Long B){
                if(A.longValue() == B.longValue()){
                    return true;
                }
                return false;
            }
    • 使用 equals 方法
            public boolean compareLong(Long A, Long B){
                if(A.equals(B)){
                    return true;
                }
                return false;
            }
    

    虽然是个坑,但是能填起来就能走好了

    展开全文
  • C/C++: short , int , long , long long数据类型选用标签: C/C++ 数据类型by 小威威在C++中,编译器对int类型数据的执行效率最高。一般在符合int条件的情况下优先选择int。 那么,选择数据类型的条件是什么呢? ...

    C/C++: short , int , long , long long数据类型选用

    标签: C/C++ 数据类型

    by 小威威


    在C++中,编译器对int类型数据的执行效率最高。一般在符合int条件的情况下优先选择int
    那么,选择数据类型的条件是什么呢?
    我认为,大于30000的数字应当使用long类型,超过20亿的数字应当使用long long类型。原因如下:

    32位的系统中:
    `short`与`int`占两个字节, `long` 占四个字节, `long long` 占八个字节;
    在64位的系统中:
    `short`占两个字节, `int` `long` 占四个字节, `long long` 占八个字节。

    (注:2的16次方 = 65536 ; 2的32次方 = 4294672296; 2的64位 = 18446744073709551616)

    为什么大于30000的数字应当用long类型呢?在64位系统中int类型占四个字节,是32位,不是足以储存大于30000的部分数字的么?

    int a = 40000; 
    long b = 40000;
    

    这主要是考虑到代码的移植性问题。因为在64位系统中,int类型占4个字节,但在32位系统中,int类型占2个字节。也就是说,当我们把一个大于(65536/2)的数用int类型储存,在64位系统上不会出现问题,但是将此程序在32位系统运行时数据就会超出范围,导致结果错误。因此,为了确保代码移植性高,应将大于(65536/2)的数定义为long类型。

    同理,当数字大于(4294672296/2)时,应定义数据为long long 类型。

    那么,什么时候用short类型呢?不是说一般优先考虑int类型么?原因如下:

    在32位系统中,定义一个short类型的数组与一个int类型数组,其存储的数据在short的范围以内。此时将代码放在64位系统运行,int类型数组所占用的内存大约是short类型数组的两倍。大大增加了内存的占用。因此,在这种情况下,还是用short 类型数组较为妥当。

    总而言之,大于30000的数据用long类型储存,大于20亿的数据用 long long储存。


    以上内容皆为本人观点,欢迎大家提出批评和指导,我们一起探讨!


    展开全文
  • //首先先知道 int 和 long long 最大值各多少 printf("%d\n", INT_MAX); //输出2147483647 printf("%lld\n", INT64_MAX);//输出9223372036854775807 //开始定义 long long x = 2468 * 100000000; //原以为 = ...
    //首先先知道 int 和 long long 最大值各为多少
    printf("%d\n", INT_MAX);  //输出2147483647
    printf("%lld\n", INT64_MAX);//输出9223372036854775807
    //开始定义
    long long x = 2468 * 100000000; //原以为 = 246800000000 < long long最大值
    printf("%lld\n", x); 	结果输出-1894967296 明显溢出
    

    问题出在哪里??

    //打印 X 的内存空间
    printf("%d\n", sizeof(x));  //输出 8 也没错
    

    问题在于:

    printf("%d\n", sizeof(2468));   //输出 4  int类型
    printf("%d\n", sizeof(100000000));	//输出4	int类型2468 * 100000000 也保存在 int中 导致溢出 溢出的结果赋值给x 也溢出
    

    解决

    long long a = 2468, b = 100000000;
    long long x = a * b;
    printf("%lld\n", x);	正常输出
    

    总结

    小于INT最大值的常数,自动保存为INT类型

    INT * INT 得到的结果也是INT,即使赋值给 long long 也有溢出的情况发生

    如果数据太大 建议用 long long = long long * long long 保证不溢出

    展开全文
  • java Long类型转为json后数据损失精度

    万次阅读 2017-08-01 13:43:29
    最近在项目开发中,使用spring boot+mybatis的架构,数据库设计主键id时定义为bigint类型,使用mybatis的自动生成代码后没注意,主键在pojo里的类型为Long。查询时获取的对象列表取出的数值没有问题,但转为json传到...

            最近在项目开发中,使用spring boot+mybatis的架构,数据库设计主键id时定义为bigint类型,使用mybatis的自动生成代码后没注意,主键在pojo里的类型为Long。查询时获取的对象列表取出的数值没有问题,但转为json传到前端后,id的数据始终不是数据库查出来的那个。

      数据库表结构设计:

      AbumTip类:

      根据外键abum_id在数据库中查询的结果:

     

     

      Controller查到的结果:

     

      chrome浏览器preview结果:

     

      可以看到abumId(对应表abum_id)和tipId(对应表中tip_id)查询到的Long类型的数据都不对。

      解决的方法:

    方法一:重新生成pojo对象,将所有数据库类型为bigint都映射成String类型。

    方法二:对于使用springboot,则增加配置代码:

     

    package com.gj.app.config;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.module.SimpleModule;
    import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    import java.util.List;
    
    @EnableWebMvc
    @Configuration
    public class WebDataConvertConfig extends WebMvcConfigurerAdapter {
            public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
                MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
                ObjectMapper objectMapper = new ObjectMapper();
                /**
                 * 序列换成json时,将所有的long变成string
                 * 因为js中得数字类型不能包含所有的java long值
                 */
                SimpleModule simpleModule = new SimpleModule();
                simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
                simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
                objectMapper.registerModule(simpleModule);
                jackson2HttpMessageConverter.setObjectMapper(objectMapper);
                converters.add(jackson2HttpMessageConverter);
            }
    }
    
     
    方法三: 在spring MVC中:
    
     
    增加类:

    其中LongToStringJsonConverter为自定义转换器

    复制代码

    public class LongToStringJsonConverter extends ObjectMapper {
        /**
         * 
         */
        private static final long serialVersionUID = 1683531771040674386L;
    
        @Override
        public ObjectMapper registerModule(Module module) {
            SimpleModule simpleModule = new SimpleModule();
            simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
            simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
            return super.registerModule(simpleModule);
        }
    }
    
     
    
     
    配置到springmvc文件中即可

    技术分享

      <mvc:annotation-driven  conversion-service="conversionService">
            <mvc:message-converters>  
               <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
                   <property name="objectMapper">  
                        <!-- <bean class="com.fasterxml.jackson.databind.ObjectMapper">   -->
                        <bean class="mypackage.LongToStringAdapter">
                            <property name="dateFormat">  
                                <bean class="java.text.SimpleDateFormat">  
                                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />  
                                </bean>  
                            </property>  
                        </bean>   
                   </property>
               </bean>
            </mvc:message-converters>  
        </mvc:annotation-driven>

     

     

     

    展开全文
  • oracle Long数据类型总结

    万次阅读 2016-03-15 21:55:50
    --概述 SELECT * FROM t_20160315; 1.存储可变长字符串,最大长度2G 2.对于超出一定长度的文本,基本上用long型存储,...3.long型主要用于不需要字符串搜索操作的长串数据,如果需要字段搜索就需要使用varchar2
  • ”的比较,这里我们进行一个Long类型数据long类型数据的比较大小的讲解。Java中Longlong的区别Java的数据类型分为两种:1、基本类型:byte(8),short(16),int(32),long(64),float(32),double(64),char(16), ...
  • long与double数据类型

    千次阅读 2015-11-13 17:26:11
    最近遇到个问题,其实不算问题,只是对数据类型不熟悉。 long是长整型类型,如果一个long类型的数字除以一个整数,除不尽的话结果会自动向下取整,如51.2会取51.0 。若想保留51.2的必须把long转换成double或者float...
  • C++ int long long double 等数据范围!

    万次阅读 2017-04-29 17:53:14
    现在给一种姿势,看看到底其数据范围是多少,在ACM竞赛中,经常会遇到数据溢出的问题,这里我们来看看int, long long的最大值是多少位的即10的多少次方,并以此我们大概能估计应该给变量定义什么样的类型或者怎样对...
  • long a = 60*60*24*1000; long b = 60*60*24*1000*1000; System.out.println(a); System.out.println(b); System.out.println(b / a); 运行输出: 86400000 500654080 5 调整代码后: long a = 60*60*24*1000L; ...
  • [二]基础数据类型Long详解

    万次阅读 2018-09-26 13:54:00
    Long 基本数据类型long 的包装类 Long 类型的对象包含一个 long类型的字段 属性简介 值 263-1 的常量,它表示 long 类型能够表示的最大值 @Native public static final long MAX_VALUE = 0x7...
  •  long l=3615L;  改:  long l=3615;   会出现什么情况?什么?    4.将本实验的实验内容1中的  float f=0.23F;  改:  float f=0.23;  会出现什么情况?什么? 不加L默认是...
  • Python数据类型之int long float

    千次阅读 2020-10-27 17:14:44
    long(长整型)3.float (浮点) 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则...
  • unsigned long long类型long long类型

    万次阅读 2015-05-02 14:46:27
    可以简洁地声明typedef unsigned long long ull。这样,如果ull类型的整数溢出了,就相当于取模2^64了。因为ull的范围是[0,2^64-1]。 而ll的范围是[-2^63,2^63-1],因为有符号的第63位表示“正负”而不表
  • C语言基本数据类型short、int、long、char、float、double

    万次阅读 多人点赞 2016-01-21 02:00:38
     C 语言包含的数据类型如下图所示 2.各种数据类型介绍 2.1整型  整形包括短整型、整形和长整形。 2.1.1短整形  short a=1; 2.1.2整形  一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数...
  • 64位整形引起的混乱主要在两方面,一是数据类型的声明,二是输入输出。 首先是如果我们在自己机器上写程序的话,情况分类如下: (1) 在win下的VC6.0里面,声明数据类型的时候应该写作 __int64 a; 输入输出的时候...
  • Oracle Long型

    2011-11-25 14:47:29
    A.Long数据类型概述   1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。  2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。  3、LONG类型...
  • sizeof char, short, int, long, long long
  • oracle里long类型的总结

    千次阅读 2019-09-24 16:48:16
    2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。 3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。 4、很多工具,...
  • 转自:...  在Linux操作系统下使用GCC进行编程,目前一般的处理器32位字宽,下面是/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明。  /* We don't have #inc
  • 分别 boolean、byte、short、int、double、float、double,这八种基本数据类型通常分为四大类型; 逻辑类型(布尔类型):boolean; 整数类型 :byte、short、int、long; 浮点类型 :float、double; 字符类型...
  • 在Linux操作系统下使用GCC进行编程,目前一般的处理器32位字宽,下面是/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明。  /* We don't have #include_next. Define ANSI for standard 32...
  • Java数据类型

    万次阅读 多人点赞 2019-09-29 00:12:35
    文章目录定义分类计算机存储单元Java基本数据类型数据类型转换 定义 Java语言是强类型语言,对于每一种数据定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。 分类 基本数据类型 数值 ...
  • oraclelong类型总结

    2010-01-09 15:53:00
    2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。4、很多工具,...
  • 初学STM32编程时,经常见到数据类型定义的符号:u8、u16等,51都是自己定义数据类型的简写符号,STM32是哪里定义的呢?今天没事就看了看系统头文件,数据类型定义在其中的3个头文件里:(1)stdint.h(摘取定义...
  • Java数据类型以及变量的定义

    千次阅读 2017-11-28 19:57:01
    什么是数据类型呢? 数据类型的分类: 1.基本数据类型 1.整型 int short long int 4个字节 short 2个字节 long 8个字节 2.浮点 float(单精度浮点) double(双精度浮点) float 4个字节 ...
  • 一 C 语言包含的数据类型 short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。 在不同的系统上,这些类型占据的字节长度是不同的: 在32 位的系统上 short 占据的内存...
  • java数据类型划分和常量与变量定义

    千次阅读 2013-09-30 21:10:03
    1. java中的数据类型划分  java语言的数据类型有简单类型和复合类型:  简单数据类型包括:  整数类型(Integer):byte, short, int, long  浮点类型(Floating):float,double  字符类型(Textual...
  • Pythone中的数据类型定义

    千次阅读 2018-09-22 14:25:51
    Python数据类型定义: 数字 数值:int,long,float... 定义:直接赋值 例如 a1 = 1 序列 字符串:str 定义:' '," ",""" """ 例如 str1 = "hello world!"...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 395,619
精华内容 158,247
关键字:

怎么定义a为long型数据