转: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
分享到:
相关推荐
实现了c语言int char的完美转换 可用于通信方面的收发指令
主要介绍了mysql修改自增长主键int类型为char类型示例,需要的朋友可以参考下
int、char、double与byte相互转换
java中int_char_string三种类型的相互转换
适合初学STL
各种基本数据类型转换源程序。 本程序涉及到的数据类型有:float, int , char, string.
big、CString_int_string_char等数据类型之间的转换.pdf
TIA博途_S7-1200中将BYTE类型的数据转换成char类型的具体方法和注意事项
C++ int,char,string,CString类型转换
Keil MDK-ARM各种数据类型占用的字节数 char short int float double占用字节数,uCOS-II
为什么strcpy的返回值类型为char *。 20. 如何判断一个单向链表是否有环路? 21. 写出判断ABCD四个表达式的是否正确,若正确, 写出经过表达式中 a的值。 int a = 4; (A)a += (a++); (B) a += (++a) ; (C) (a++) += ...
在进行运算时,以表达式中最长类型为主,将其他类型位据均转换成该类型,如: (1)若运算数中有double型或float型,则其他类型...(3)若运算数中最长类型为int型,则char型也转换成int型进行运算。算术转换是在运算过程中
关于数据库的谣言也有不少,比如“int性能比char高很多”。 我最近针对int、long、char、varchar进行了一次性能测试,发现它们其实并没有太大的性能差距: 备注:c8=char(8), s8=varchar(8), i8=(bigint), c4=char(4...
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; } } ...
主要介绍了详解C语言中的char数据类型及其与int类型的转换,是C语言入门学习中的基础知识,需要的朋友可以参考下
java反向输出int类型整数(不借助char,string和数组)
例1中结构体student与int、float一样都是数据类型。 声明结构体后可定义结构体变量,这时分配空间。 12.1.2 结构体变量定义 声明结构体后可以定义结构体变量。 定义方法: a.先声明结构体,再定义结构体变量 ...
数据类型转换,Cstring转char、string、int等数据类型的方法