`

int类型与char类型

 
阅读更多

转:http://blog.csdn.net/liminwang0311/article/details/6649321 ,有增加

比较下面三个定义式的区别:

int i = 1;

char i = 1;

char i = '1';

int用来定义整型变量,char用来定义字符型变量,要清楚的知道三个定义式的区别,可以比较它们在内存中的存储形式。

数据在内存中是以二进制形式存放的,而且是以补码表示的。一个正整数的补码和该数的原码(即该数的二进制形式)相同;如果数值是负的,求补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。这里不对补码的知识做过多的讨论了。

int i = 1,则内存中的存储形式为:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

在讨论字符型数据以前,首先要明确一个“编码”的概念,即约定一套规则,将a、b、#等符号用二进制的形式表示出来,然后大家都遵守这个规则。美国信息交换标准码(ASCII)就是基于这样的目的产生的。那么我们现在来看下面两个定义式:

char i = 1;

char i = '1';

将一个整型常量放到一个字符变量中,实际就是把以该整型常量表示的ASCII码放到内存单元中。(ASCII码是以十进制整数表示的)

将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是把该字符的相应ASCII代码放到存储单元中。

char i = 1;则i的ASCII就是1,在内存中就是0 0 0 0 0 0 0 1

char i = ‘1’;则i的ASCII就是字符‘1’的ASCII码49,就是0 0 1 1  0 0 0 1

上面是int和char的区别,它们的联系就是存储形式类似,就是一个是1个字节,一个是2个字节。int 可以用字符常量赋值,char也可以用整型常量赋值,它们之间的桥梁就是ASCII码,因为字符是与ASCII一一对应的。

 

 

我增加的

在返回类型是int的方法中,可以直接返回char类型,些时返回的类型是char的ASCII码值。

但在返回类型是char方法中,不能直接返回int类型

如:

//如果在返回类型是int的方法中返回char类型,那么返回的结果是char的ASCII码值。
public class IntTest {

	public static void main(String[] args) {
		IntTest it = new IntTest();
		int i = it.getInt();
		System.out.println(i);
		System.out.println(it.getChar());
	}
	
	public int getInt(){
		char c = 'a';
		return c;
	}
	
	public char getChar(){
		int a = 97;
		return (char)a;
	}
}

//打印结果:97
//         a 
 

 

分享到:
评论
1 楼 liu5047853521 2012-11-30  
写的非常的好,十分感谢

相关推荐

    int main(int argc,char *argv[])函数的举例解析

    总之,`int main(int argc, char *argv[])`函数在C语言程序设计中扮演着核心角色,它不仅标志着程序的开始,还提供了与外部交互、接收命令行参数的重要接口。熟练掌握其用法,对于编写高效、灵活的C程序至关重要。

    对比MySQL中int、char以及varchar的性能

    char和varchar的索引建立时间相差无几,而int类型的索引建立速度相对较快。在有索引的查询中,int的速度比char和varchar快约18%,但这个差距在实际应用中可能并不足以成为决定数据类型选择的关键因素。 在存储和...

    int2char函数

    本文将深入探讨一种从整型(int)转换为字符型(char[])的实现方式——int2char函数,以及它与itoa()和sprintf()函数的关系。通过分析标题、描述、标签和部分代码内容,我们将详细解析这些知识点。 ### int2char函数:...

    mysql修改自增长主键int类型为char类型示例

    然而,在某些业务场景中,可能需要将已有的自增长主键INT类型改为CHAR类型。这通常发生在需要更灵活的主键策略或者需要存储特定格式的数据(如UUID)时。以下是一个逐步的示例,说明如何在不丢失现有数据的情况下...

    int、char、double与byte类型之间相互转换

    ### 一、int类型转换为byte数组 #### 方法:intToByte() 该方法接收一个int类型的参数`number`,将其转换为一个byte数组返回。Java中的int类型占用4个字节(即32位),因此转换后的byte数组长度为4。 ```java ...

    java中int_char_string三种类型的相互转换

    Java 中 int、char、String 三种类型的相互转换详解 Java 作为一种静态类型语言,对变量的类型定义非常严格。然而,在实际开发中,我们经常需要在不同的类型之间进行转换以满足不同的需求。其中,int、char、String...

    Keil MDK-ARM各种数据类型占用的字节数 char short int float double

    4. **long**: `long`类型在Keil MDK-ARM中也占用4个字节,与`int`相同。这与某些其他环境(如标准C++或x86架构)中的`long`不同,那里的`long`通常为8字节。`long int`同样占用4字节。 5. **float**: 单精度浮点数`...

    c语言int char类型转换

    实现了c语言int char的完美转换 可用于通信方面的收发指令

    float_char_int_string.rar_char float_char int 转换_char to string_

    本程序"float_char_int_string.rar"着重探讨了`char`, `float`, `int`以及`string`这四种基本数据类型的相互转换。这些转换在不同的场景下都有其特定的应用,例如数据存储、用户界面显示或计算等。下面我们将详细...

    int main(int argc,char argv[ ])

    "int main(int argc,char argv[ ])" 在C语言中,main函数是程序的入口点,main函数的定义方式有多种,但最标准的写法是int main(int argc, char *argv[], char *env[]),其中argc、argv和env三个参数是必不可少的...

    datatype-transform.rar_C++ CString CHAR_CString_char int 转换_char

    标题提到的"datatype-transform.rar_C++ CString CHAR_CString_char int 转换_char"着重于C++中`int`、`char`、`std::string`以及`CString`类型的相互转换。`CString`是Microsoft MFC(Microsoft Foundation Classes...

    vc++ 字符串类型转为整型,char转为long,char转为int

    long int char2long(char* sz) { if (strlen(sz)==0) return 0; long num=0,num2=0; if(strlen(sz)) { for (int i=0;i(sz);i++) { memcpy(&num2,sz+i,1); num2=num2-'0'; num=num*10+num2; } } ...

    char类型与int类型的相互转换.cpp

    适合初学STL

    big、CString_int_string_char数据类型之间的转换

    big、CString_int_string_char等数据类型之间的转换.pdf

    CString,int,string,char之间的转换

    本文将详细探讨`CString`、`int`、`string`、`char`及其数组之间的转换方法,这对于理解和处理不同类型字符串数据尤为重要。 #### 1. `char`到`CString`的转换 `char`类型的单个字符或`char*`(字符指针)可以直接...

    CString,int,string,char之间的转换(C/C++)

    CString可以使用Format函数将int类型转换为CString,例如: ``` int i = 64; CString s; s.Format("%d", i); ``` 反之,将CString转换为int类型可以使用atoi、_atoi64或atol函数,例如: ``` CString s = "64"; int ...

    S7-1200中将BYTE类型数据转换成char类型数据的具体方法.docx

    本教程将详细介绍如何在TIA博途环境下将BYTE类型的数据转换成char类型数据,以及在转换过程中需要注意的事项。 首先,创建一个TIA博途的新测试项目,然后在程序块中定义一个DB块。在这个DB块中,我们需要创建两个...

    mysql实现char类型主键自增长

    然而,这种自增长通常与整型数据类型(如INT)关联,而较少见于字符型数据(如CHAR)。本文将深入探讨如何在MySQL中利用触发器实现CHAR类型主键的自增长功能,这将为我们提供一种灵活且独特的主键生成策略。 ### ...

    详细介绍c的指针与int类型的使用

    例如,`char *`类型的指针每移动一次只跨越1个字节,而`int *`类型的指针每移动一次则跨越4个字节(假设`int`的大小为4字节)。这一点对于理解和使用指针至关重要。 #### 示例分析:不同类型指针的使用 接下来,...

    VC、C++ CString,int,string,char之间的转换

    ### VC、C++ 中 CString, int, string, char 之间的转换 在 C++ 开发过程中,数据类型之间的转换是常见的需求之一。对于 VC(Visual C++)开发环境来说,掌握不同字符串类型之间的转换方法尤为重要。本文将详细介绍...

Global site tag (gtag.js) - Google Analytics