精华内容
下载资源
问答
  • Golang 数据类型转换 Int64 转化为 String 使用函数为: strconv.FormatInt(int64, original_int64_varialble) 示例: converted_string_variable = strconv.FormatInt(int64, original_int64_varialble) ...

    Golang 数据类型转换 Int64 转化为 String 使用函数为:

    strconv.FormatInt(int64(original_int64_varialble), radix)

    radix : 转换的进制基数 :可以是 2- 36 (进制)

    示例:

    converted_string_variable = strconv.FormatInt(int64(original_int64_varialble), 10)



    展开全文
  • char与int数据类型的强制转化

    万次阅读 2015-03-25 09:29:52
    2.从长字节数据类型转换为短字节数据类型,会产生截断: 如从4字节的int类型转换成1个字节的char类型,则取int数据的最低的一个字节,将这个字节的数据赋给char型数据,且是有符号的,即首位为符号位;而如果是从...

    1.首先char与int都分为signed与unsigned类型,默认情况下都是signed类型。

    2.从长字节数据类型转换为短字节数据类型,会产生截断:

    如从4字节的int类型转换成1个字节的char类型,则取int数据的最低的一个字节,将这个字节的数据赋给char型数据,且是有符号的,即首位为符号位;而如果是从int转换成unsigned char类型,则整个一个字节都是数据,没有符号位。

    #include <stdio.h>
    int main()
    {
    	int s=128;
    	unsigned char unChar=s;
    	char Char=s;
    	printf("%x\t%x\n",Char,unChar);//按16进制输出
    	printf("%d\t%d\n",Char,unChar);//按10进制输出
    }
    输出结果为:

    2.从短字节类型转换为长字节类型

    从char转换为int:则在前面的三个字节补符号位,即补上0xffffff(char的首位为1),或0x000000(char的首位为0)。

    从unsigned char转换为int,则前面补上0x000000.

    #include <stdio.h>
    int main()
    {
    	int s1,s2;
    	unsigned char unChar=128;
    	char Char=128;
    	s1=(int)unChar;
    	s2=(int)Char;
    	printf("%x\t%x\n",s1,s2);//按16进制输出
    	printf("%d\t%d\n",s1,s2);//按10进制输出
    }

    3.ASCII码为1个字节,而第一位为符号类型。其非负数范围为0-127。

    在此范围内的字符,强制转换为int之后,都可以得到其对应的ASCII值。

    如:

    char a=78;

    int b=(int)a;

    cout<<b;//结果为78


    展开全文
  • 彻底让你明白 Integer 类和 int 基本数据类型的区别

    万次阅读 多人点赞 2018-02-01 16:46:33
    1、Integer 类简介2、Integer 类和 int 的区别3、Integer 的自动拆箱和装箱  ①、自动装箱 ②、自动拆箱 4、回顾开头的问题5、测试    突然发现自己对Integer i = 10;这种语法不太明白,于是乎有了这...
    
    浅谈 Integer 类

     


      突然发现自己对Integer i = 10;这种语法不太明白,于是乎有了这篇文章,那么在讲解 Integer 之前,我们先看下面这段代码:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public static void main(String[] args) {
         Integer i = 10 ;
         Integer j = 10 ;
         System.out.println(i == j);
          
         Integer a = 128 ;
         Integer b = 128 ;
         System.out.println(a == b);
         
         int k = 10 ;
         System.out.println(k == i);
         int kk = 128 ;
         System.out.println(kk == a);
          
         Integer m = new Integer( 10 );
         Integer n = new Integer( 10 );
         System.out.println(m == n);
    }

      大家可以先思考一下结果是什么?

      答案是:

      

      至于为什么是这个结果,下面我们来一一介绍。

    1、Integer 类简介

      首先我们大致看一下Integer是什么,Integer 类在JDK1.0的时候就有了,它是一个类,是 int 基本数据类型的封装类。

      

      基本API如下:

      

      

      

      

      

      图片引用:http://blog.csdn.net/litong09282039/article/details/46309541

    2、Integer 类和 int 的区别

      ①、Integer 是 int 包装类,int 是八大基本数据类型之一(byte,char,short,int,long,float,double,boolean)

      ②、Integer 是类,默认值为null,int是基本数据类型,默认值为0;

      ③、Integer 表示的是对象,用一个引用指向这个对象,而int是基本数据类型,直接存储数值。

    3、Integer 的自动拆箱和装箱

      自动拆箱和自动装箱是 JDK1.5 以后才有的功能,也就是java当中众多的语法糖之一,它的执行是在编译期,会根据代码的语法,在生成class文件的时候,决定是否进行拆箱和装箱动作。

      ①、自动装箱

      一般我们创建一个类的时候是通过new关键字,比如:

    ?
    1
    Object obj = new Object();

      但是对于 Integer 类,我们却可以这样:

    ?
    1
    Integer a = 128 ;

      为什么可以这样,通过反编译工具,我们可以看到,生成的class文件是:

    ?
    1
    Integer a = Integer.valueOf( 128 );

      这就是基本数据类型的自动装箱,128是基本数据类型,然后被解析成Integer类。

      ②、自动拆箱

      我们将 Integer 类表示的数据赋值给基本数据类型int,就执行了自动拆箱。

    ?
    1
    2
    Integer a = new Integer( 128 );
    int m = a;

      反编译生成的class文件:

    ?
    1
    2
    Integer a = new Integer( 128 );
    int m = a.intValue();

      简单来讲:自动装箱就是Integer.valueOf(int i);自动拆箱就是 i.intValue();

    4、回顾开头的问题

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public static void main(String[] args) {
         Integer i = 10 ;
         Integer j = 10 ;
         System.out.println(i == j);
          
         Integer a = 128 ;
         Integer b = 128 ;
         System.out.println(a == b);
         
         int k = 10 ;
         System.out.println(k == i);
         int kk = 128 ;
         System.out.println(kk == a);
          
         Integer m = new Integer( 10 );
         Integer n = new Integer( 10 );
         System.out.println(m == n);
    }

      我们使用反编译工具Jad,得到的代码如下:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public static void main(String args[])
    {
         Integer i = Integer.valueOf( 10 );
         Integer j = Integer.valueOf( 10 );
         System.out.println(i == j);
         Integer a = Integer.valueOf( 128 );
         Integer b = Integer.valueOf( 128 );
         System.out.println(a == b);
         int k = 10 ;
         System.out.println(k == i.intValue());
         int kk = 128 ;
         System.out.println(kk == a.intValue());
         Integer m = new Integer( 10 );
         Integer n = new Integer( 10 );
         System.out.println(m == n);
    }

      打印结果为:

      

      首先,直接声明Integer i = 10,会自动装箱变为Integer i = Integer.valueOf(10);Integer i 会自动拆箱为 i.intValue()。

      ①、第一个打印结果为 true

      对于 i == j ,我们知道这是两个Integer类,他们比较应该是用equals,这里用==比较的是地址,那么结果肯定为false,但是实际上结果为true,这是为什么?

      我们进入到Integer 类的valueOf()方法:

      

      分析源码我们可以知道在 i >= -128 并且 i <= 127 的时候,第一次声明会将 i 的值放入缓存中,第二次直接取缓存里面的数据,而不是重新创建一个Ingeter 对象。那么第一个打印结果因为 i = 10 在缓存表示范围内,所以为 true。

      ②、第二个打印结果为 false

      从上面的分析我们知道,128是不在-128到127之间的,所以第一次创建对象的时候没有缓存,第二次创建了一个新的Integer对象。故打印结果为false

      ③、第三个打印结果为 true

      Integer 的自动拆箱功能,也就是比较两个基本数据类型,结果当然为true

      ④、第四个打印结果为 true

      解释和第三个一样。int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比较。

      ⑤、第五个打印结果为 false

      因为这个虽然值为10,但是我们都是通过 new 关键字来创建的两个对象,是不存在缓存的概念的。两个用new关键字创建的对象用 == 进行比较,结果当然为 false。

    5、测试

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Integer a = 1 ;
    Integer b = 2 ;
    Integer c = 3 ;
    Integer d = 3 ;
     
    Integer e = 321 ;
    Integer f = 321 ;
     
    Long g = 3L;
    Long h = 2L;
     
    System.out.println(c == d);
    System.out.println(e == f);
    System.out.println(c == (a + b));
    System.out.println(c.equals((a+b)));
    System.out.println(g == (a+b));
    System.out.println(g.equals(a+b));
    System.out.println(g.equals(a+h));

      反编译结果:

      

     

      打印结果为:

      分析:第一个和第二个结果没什么疑问,Integer类在-128到127的缓存问题;

      第三个由于  a+b包含了算术运算,因此会触发自动拆箱过程(会调用intValue方法),==比较符又将左边的自动拆箱,因此它们比较的是数值是否相等。

      第四个对于c.equals(a+b)会先触发自动拆箱过程,再触发自动装箱过程,也就是说a+b,会先各自调用intValue方法,得到了加法运算后的数值之后,便调用Integer.valueOf方法,再进行equals比较。

      第五个对于 g == (a+b),首先计算 a+b,也是先调用各自的intValue方法,得到数值之后,由于前面的g是Long类型的,也会自动拆箱为long,==运算符能将隐含的将小范围的数据类型转换为大范围的数据类型,也就是int会被转换成long类型,两个long类型的数值进行比较。

      第六个对于 g.equals(a+b),同理a+b会先自动拆箱,然后将结果自动装箱,需要说明的是 equals 运算符不会进行类型转换。所以是Long.equals(Integer),结果当然是false

      第七个对于g.equals(a+h),运算符+会进行类型转换,a+h各自拆箱之后是int+long,结果是long,然后long进行自动装箱为Long,两个Long进行equals判断。

    展开全文
  • Int数据类型详解

    千次阅读 2018-04-08 15:42:27
    Int 4kb,32bit,范围 -2147483648 到 2147483647 解惑一:为什么是-2147483648 到 2147483647 基础知识 计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都...

    Int
    4kb,32bit,范围 -2147483648 到 2147483647

    解惑一:为什么是-2147483648 到 2147483647
    基础知识
    计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
    在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路

    提出问题    
    应为2的31次方十进制数:2147483648
    
    所以int数据范围应该是-2147483648 到  2147483648
    
    但是为什么int的数据范围是-2147483648 到 2147483647呢
    
    数据存储的时候会做一系列的转化,首先会将十进制的数值转化 位二进制的数值位,再添加上符号位(【符号位】+【数值位】二进制源码)。但是计算机 不会直接存储二进制源码,而是存储的二进制源码对应的补码。
    已知源码 :
    0111 1111 1111 1111 1111 1111 1111 1111 =   -2147483648
    1100 0000 0000 0000 0000 0000 0000 0000 0 =   2147483648
    
    源码和补码的转换(定理):正整数源码的补码和源码相同
                   负整数源码的补码是所有位取反,再加一。
     带入以上规则:0111 1111 1111 1111 1111 1111 1111 1111 补码 1000 0000 0000 0000 0000 0000 0000 0001
                 1100 0000 0000 0000 0000 0000 0000 0000 0  补码 1100 0000 0000 0000 0000 0000 0000 0000 0
     定理二:int数据类型只能允许存储32位
            2147483648 的 补码 有23位,会溢出。
     所以:int的最大正整数位2147483648-1
    
     2147483647
     源码:1111 1111 1111 1111 1111 1111 1111 1111
     补码:1111 1111 1111 1111 1111 1111 1111 1111
    
    解惑二:为什么是-2147483648 到 2147483647(2的31次方) 不是 -4 294 967 295到4 294 967 295(2的32次方)?
        已知:总位数位32位,符号位占用1位,且每一位只能表示两种状态。    
             int数值位最大只允许31位 = 32 - 符号位 
             2的31次方 = 2147483648
             综合解惑一
         所以 int 数据范围是 -2147483648 到 2147483647,而不是 -4 294 967 295到4 294 967 295
         也可以表示为:0111 1111 1111 1111 1111 1111 1111 1111  到  1111 1111 1111 1111 1111 1111 1111 1111
    
    展开全文
  • 51单片机 int相关数据类型问题

    千次阅读 2018-05-16 17:53:47
    1、int相关类型表示范围unsigned int 2byte 0~65535 int 2byte -32768~32767unsigned long int 4byte 0~4294967295long int ...
  • int , long , long long , __int64 数据类型 及 数值范围 int 1e9+ -2147483648~2147483647 unsigned int 1e9+ 0~4294967295 long...
  • 如何判断int数据类型为空

    万次阅读 2016-12-09 21:58:33
    法一: 在不改变数据库结构的...1 先通过 String.valueOf(int类型数据) 转换成String类型; 2 使用if(){ } 判断“null” || "0" 是否匹配你要判断的int 类型数据即可; DEMO: if(“null”.equals( String.valueOf(你
  • int是python的数据类型,torch.cuda.FloatTensor是Pytorch的GPU数据类型。 转换方式为:python数据类型->Numpy数据类型->Pytorch的cup tensor->Pytorch的gpu tensor 例如: a为基本的int类型数据 .
  • 关于mysql中int数据类型储存最大数值与长度的关系关于mysql中int数据类型储存最大数值与长度的关系关于mysql中int数据类型储存最大数值与长度的关系关于mysql中int数据类型储存最大数值与长度的关系
  • unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295 long 2147483648~2147483647 long long的最大值:9223372036854775807 long long的最小值:-...
  • int double这些数据类型是什么?

    千次阅读 2019-05-31 15:37:45
    数据类型的目的是为了使用内存,假如我要用4个字节的内存存数据,就用int
  • python数据类型int类型

    千次阅读 2017-02-10 19:10:11
    python提供了两种内置的int类型,即int与bool*。整数与布尔型值都是固定的。在布尔表达式中,0与False表示False,其他任意整数与true都表示true。在数字表达式中,True表示1,False表示0。 整数 整数的大小只受于...
  • c++ 基本数据类型长度
  • 因为python跟java在数据类型转换方面语法不同,所以总是搞混,特此记录下来,方便查阅: 在python中: 字符串str转换成int: int_value = int(str_va
  • 用以下两行代码可以知道自己的电脑下,int数据类型的最大值,最小值 cout << "int数据类型最大值:" << (numeric_limits<int>::max)() << endl; cout << "int数据类型最小值:" &...
  • 首先我们先了解一下...int:这是我们最常见也是最常用的数据类型。现在一般的计算机都是64位操作系统。(位)是指计算机一次计算能够处理的二进制的个数。一下各种类型都是在这种操作系统下进行讨论。int类型的数据...
  • mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大? 回答: 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。  如果你的答案和上面的一致,...
  • int类型数据范围 - 学习

    千次阅读 2019-10-02 10:08:26
    因此,理解了二进制,你就能更加容易地理解很多计算机的数据结构和算法,也为我们后面的学习打下基础。 2.学习/操作 1.弄清楚这个事情,首先要知道,二进制与位的概念 二进制: 就是01010101...组成的一段数字,...
  • 数据类型说明:int16,int32,int64,WORD

    千次阅读 2018-12-18 16:07:00
    一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节...
  • int8_t int16_t int32_t等数据类型的定义

    千次阅读 2019-07-24 17:27:05
    一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别: 16位平台 char 1个字节8位 short 2个字节16位 int 2个字节16位 long 4个字节32位 指针...
  • Arduino数据类型转换 int-char
  • int,long long数据类型及数值范围

    千次阅读 2019-07-26 10:08:39
    类型 存储字节 表示范围 int 4 1e9+ -2147483648~2147483647 long long 8 1e18+ -9223372036854775808~...long long占用8个字节,数据表示范围也从int的[−2^31,2^31−1],升级...
  • int类型是有符号整型,即int类型的值必须是整数,可以是正整数,负整数,零。 int类型取值范围因计算机系统而异。早起的16位IBM PC兼容机使用16位来存储一个int值,其取值范围是-32769 ~32768。目前个人计算机一般...
  • 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表示负数...
  • 将list中的数据类型都变成int类型

    千次阅读 2020-11-25 15:41:33
    # 转换成ndarray然后转换成int数据类型,然后转换成list list = np.array(list).astype(dtype=int).tolist() print(list) # 结果为 # [1, 2, 4, 5] 方法二-map python2.X中可以这样实现,因为python2.X中,map函数...
  • C#数据类型和类型转换 Convert.ToInt16 与 Convert.ToInt32 区别 版权声明:本文由 群燕小站 原创,转载请注明【转自:群燕小站(http://www.zqunyan.com);原文链接: http://www.zqunyan.com/79.html】 取值...
  • Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略 目录 数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化 ...
  • 判断Int类型数据是否溢出

    千次阅读 2017-03-05 18:40:30
    今天在leetcode上做题时...在头文件“limits.h”中有各种基本数据类型的最大最小值。/* Minimum and maximum values a `signed int' can hold. */ # define INT_MIN (-INT_MAX - 1) # define INT_MAX 2147483647/* Max
  • Java中的数据类型详解——int类型01

    千次阅读 2020-07-30 19:14:57
    int 4个字节 2147483647是int最大值,超了这个范围可以使用long类型。 long 8个字节 1个字节 = 8个二进制位 1byte = 8bit 对于以上的四个类型来说,最常用的是int。 开发的时候不用斤斤计较,直接...
  • mysql中几种int数据类型的区别

    万次阅读 2018-11-01 14:38:17
    类型 字节 范 围 无符号(unsigned) tinyint 1 -128 127 0-255 smallint 2 -32768 32767 0-65535 mediumint 3 -8388608 8388607 0-16777215 int 4 -2147483648 2147483647 0-4294967295 bigint 8 -...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,462,764
精华内容 985,105
关键字:

int属于的数据类型