当前位置:文档之家› SqlServce中字段数据类型char, nchar, varchar nvarchar的区别

SqlServce中字段数据类型char, nchar, varchar nvarchar的区别

SqlServce中字段数据类型char, nchar, varchar nvarchar的区别
SqlServce中字段数据类型char, nchar, varchar nvarchar的区别

SQL SERVER中字段数据类型char, nchar, varchar

nvarchar的区别

在SQL Server中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:char nchar varchar nvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区别。

char:固定长度,非Unicode字符数据,长度为n个字节。n的取值范围为1至8,000,存储大小是n个字节。char的SQL2003同义词为character。

varchar:可变长度,非Unicode字符数据。n的取值范围为1至8,000。max指示最大存储大小是2^31-1个字节。存储大小是输入数据的实际长度加2个字节。所输入数据的长度可以为0个字符。SQL-2003中的varchar就是charvarying或charactervarying。

nchar:n个字符的固定长度的Unicode字符数据。n值必须在1到4,000之间(含)。存储大小为两倍n字节。nchar的SQL-2003同义词为nationalchar 和nationalcharacter。

nvarchar:可变长度Unicode字符数据。n值在1到4,000之间(含)。max指示最大存储大小为2^31-1字节。存储大小是所输入字符个数的两倍+2个字节。所输入数据的长度可以为0个字符。nvarchar的SQL-2003同义词为nationalcharvarying和 nationalcharactervarying。

char,varchar:最多8000个英文,4000个汉字

nchar,nvarchar:可存储4000个字符,无论英文还是汉字

char,nchar:定长,速度快,占空间大,需处理

varchar,nvarchar:变长,速度慢,占空间小,无需处理

定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度。

变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。

1、char。char存储定长数据很方便,char字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到Trim()。

2、varchar。存储变长数据,但存储效率没有char高。如果一个字段可能

的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为varchar(10)是最合算的。varchar类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

3、nchar、nvarchar、ntext。这三种从名字上看比前面三种多了个“n”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和 char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储 8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

char类型溢出问题

大家之前肯定都遇到过这样的问题,假如我用char类型的变量num接收大于127的数时,打印num的值发现是-128 这是为什么呢?(此处只讨论整数) 第一点:大家知道char类型的取值范围是-128到127,这是char类型的存储空间限制的。char 类型的变量占1个字节,最高位为符号位,0代表整数,1代表负数。这样char类型最大为(0111 1111)即127.存储范围不再它的取值范围的话会造成溢出。 第二点:数值数据在内存中是以数据的补码形式存放的,比如存放一个正整数127,由于正数的补码就是源码,所以存放在内存中即为0111 1111.而如果要存放一个负数-2,系统会首先得到该负数的补码(取绝对值后取反,再加1)即1111 1110,再保存存储起来。读取的时候执行相反操作。 第三点:char类型的变量在使用时系统会将其扩展为int类型,高24位补符号位。变量的正负通过扩展的24位决定,1代表负数,0代表整数。 跟据以上三点, 我们可以分析char num = 128,系统是如何操作的: 128是一个正数,所以它的补码也是它本身1000 0000,赋值给num后,num代表的存储空间中存储的就是1000 0000. 我们再分析printf(“%d\n”, num); 使用num变量时系统首先会根据符号位将num扩展为32位,由于现在符号位为1,所以扩展后为1111 1111 1111 1111 1111 1111 1000 0000.系统认为这是一个负数的补码,所以再得到将其减1取反(这里操作的是低8位)得到1000 0000为128,通过扩展的24位,系统认为这是一个负数,所以最终打印出来的结果是-128.

Java程序设计B-复习范围-(已解答)-

Java程序设计B 复习提纲红皮教材 灰色----不会 红色----做的答案 第1章 内容: 1) Java语言的特点JA V A语言具有简单、面向对象、可移植、分布性、解释器通用性、稳健、多线程和同步机制、安全等语言特性。 2)简述采用MyEclipse 开发Java项目,可视化项目,appplet, jsp项目等的过程 JA V A项目: P11-14 可视化项目: 配置SWING插件--新建JA V A项目—其他—swing—JFRAME--拖入组件—编程—运行 Applet: 新建JA V A项目--新建Japplet—编写HTML页面文件—运行 jsp: 新建Web项目–新建JSP—编程—运行TOMCAT 3)简述什么是JVM(java virtual machine)java虚拟机和JDK(java development kit)java开发工具包,简述JDK1.5的安装和配置过程P5-7,以及举例说明采用JDK开发、编译和执行Java 程序的过程和相关命令。 举例HelloWorld编译执行: 1.用记事本编写代码如下,保存为HelloWorld.java,文件名不与public class的类名一致 public class Hello World{ public static void main(String[] args){ System.out.println(―Hello World!‖); } } 2.编译:用命令行进入存放HelloWorld.java文件夹下,执行javac。 3.执行:java命令+类名,如java HelloWorld。 4)简述Java 可执行类文件的结构, 包含部分,类头,主函数等 书写一个能输出你的姓名与专业的可执行的Java程序 public class test{ private String name="冯予沁"; private String major="物工"; public static void main(String[] args){ System.out.println("姓名:"+name); System.out.println(―专业:"+major); } } 1-1 JA V ASE 、JA V AEE 、JA V AME 1-2 首先编写其扩展名为“JA V A”的JA V A源文件,其次将其编译为扩展名为“class”的类文件,最后通过“java,oneJavaApp”来运行java程序 1-2 P7-8 1-5 P6-7

Java 基本数据类型取值范围讲解

Java 基本数据类型取值范围讲解 一、Java的类型词语理解: 1) 原始数据类型,简单类型,基本类型都是一个含义; 2)复合类型,扩展类型,复杂类型、引用类型都是一个含义; 3)浮点类型,实数、实型都是一个含义; 4)逻辑型、布尔型都是一个含义; 5)本人个人认同的类型分类: 阅读时需要理解: 定点:定点的意思是把小数点定在末尾,小数点后没有数字的数据,Java中通常把它们称为整数; 常量:就是直接的值; 变量:放置常量的容器,除了放置常量之外,也可以给变量一个运算式,变量中的值是可变的; 二、Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格。数据类型是语言的抽象

原子概念,可以说是语言中最基本的单元定义,在Java里面,本质上讲将数据类型分为两种:基本类型和引用数据类型。 基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。 引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。 三、Java中的数据类型与内存的关系 在Java中,每个存放数据的变量都是有类型的,如: char ch;float x;inta,b,c; ch是字符型的,就会分配到2个字节内存。不同类型的变量在内存中分配的字节数不同,同时存储方式也 是不同的。 所以给变量赋值前需要先确定变量的类型,确定了变量的类型,即确定了数据需分配内存空间的大小,数 据在内存的存储方式。 四、Java数据类型在内存中的存储: 1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内 存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面八种数据类型是这种存储模型; 2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存 模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储 在有序的内存栈上的,而对象本身的值存储在内存堆上的; 区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的(需要java中的栈、堆概念), 基本类型和引用类型的内存模型本质上是不一样的。 例1:我们分析一下”==“和equals()的区别。 首先,我定以两个String对象 String a="abc";

基本数据类型练习题

基本数据类型练习题 一、回答下列问题: 1.C语言中有哪些数据类型?分别说明它们的类型关键字、取值范围、类型长 度。 2.说明下面的每个数据各属于哪一种(数值常量、字符常量、字符串、标识 符、保留字、运算符、标点、非法数据)? 25 18 -3.67 12.8 “4”…4? x1 “x2”“1949.10” cin int K_name 3ab “float x ,y “ if endl + “\n” ? ;“sy1.cpp”…\32? \? 3.字符常量与字符串常量的区别是什么? 4."A"与'A'是否等价? 5 下列变量定义中,哪些地方不正确? (1) a, b, c:int; (2)float x;y;x; (3)char c1,c2;int c1; (4)int i,y,long k ; (5)n1,n2,n3,long (6)char,zhang, li,int; (7)int i=j=k=1; (8)boolean b1,b2; (9)bool b; 6 取一个适当的名字描述下列数据,并考虑用哪种数据类型好。 (1)一个人去年的年龄。 (2)一个人的体重。 (3)考试的分数。 (4)今天的温度。 (5)地球到月亮的距离。 (6)一天的开支。 二、选择题: 1.下列数据类型不是C语言基本数据类型的是()。 A)字符型 B)整型 C)实型 D)数组 2.在C语言中,自定义的标识符()。 A)能使用关键字并且不区分大小写 B)不能使用关键字并且不区分大小写

C)能使用关键字并且区分大小写 D)不能使用关键字并且区分大小写 3.下列字符列中,可作为C语言程序自定义标识符是()。 A)case B)file C)malloc D)if 4.下列正确的八进制整型常量表示是() A)0a0 B) 015 C) 080 D) 0x10 5.下列错误的十六进制整型常量表示是() A)0x11 B) 0xaf C) 0xg D) 0x1f 四、编程题: 1.编写程序测试你机器的int,float,double,long,char 各类型变量存储的字节。 2.从键盘输入两个整数,计算它们的和与差,并输出结果。 3.从键盘输入一个大写英文字母,输出相应的小写字母。 4.华氏温度转换为摄氏温度。从键盘输入华氏温度f,计算并输出摄氏温度c。c=5/9*(f-32)。

各种数据类型字节数 取值范围

源代码 #include #include #include int main() { printf ("Data type Number of bytes Min value Max value\n"); printf ("-------------------------------------------------------------------------------------------------\n"); printf ("char %d %d %d\n",sizeof(char),CHAR_MIN,CHAR_MAX); printf ("int %d %d %d\n",sizeof(int),INT_MIN,INT_MAX); printf ("short int %d %d %d\n",sizeof(short),SHRT_MIN,SHRT_MAX); printf ("long int %d %d %d\n",sizeof(long),LONG_MIN,LONG_MAX); printf ("float %d %e %e\n",sizeof(float),FLT_MIN,FLT_MAX); printf ("double %d %e %e\n",sizeof(double),DBL_MIN,DBL_MAX); printf ("long long %d %lld %lld\n",sizeof(long long),LLONG_MIN,LLONG_MAX); printf ("unsigned long %d %u %u\n",sizeof(unsigned long),ULONG_MAX+1,ULONG_MAX); printf ("unsigned short %d %d %d\n",sizeof(unsigned short),0,USHRT_MAX); printf ("unsigned char %d %d %d\n",sizeof(unsigned char),0,UCHAR_MAX); printf ("unsigned int %d %d %u\n",sizeof(unsigned int),0,UINT_MAX); return 0; }

C语言程序设计(数据与数据类型)

2.1数据与数据类型 2.1.1 数据和数据类型 数据是程序加工、处理的对象,也是加工、处理的结果,所以数据是程序设计中所要涉及和描述的主要内容。程序所能处理的基本数据对象被划分成一些组,或说是一些集合。属于同一集合的各数据对象都具有同样的性质,程序设计语言中具有这样性质的数据集合称为数据类型。 所有数据都属于某种类型。一个数据的类型决定了这个数据在内存的存储形式、取值范围和能够对它进行的操作。 C/C++中的数据类型大致可以分为两大类:第一类是基本数据类型,基本数据类型是系统预定义的类型,包括整型、浮点型(实型)和字符型;第二类是非基本数据类型,即自定义数据类型,包括数组、结构体、共用体、枚举类型和指针类型。本章介绍几种基本数据类型,其它数据类型将在以后各章陆续介绍。下面给出这些数据类型(图2-1)。 2.1.2C 语言的基本数据类型 基本数据类型是基元,所有的数据类型都建立在基本类型之上。C/C++语言的基本数据类型有以下几个: int 整型char 字符型float 单精度浮点型double 双精度浮点型 long double 长双精度浮点型 另外,在基本数据类型基础上附加一些限定词,得到扩充的数据类型。short,long 数据类型 基本类型 自定义类型 整型 实型 字符型 单精度 数组类型结构体类型 共用体类型枚举型指针类型 双精度 图2-1数据类型

可以应用到整型,unsigned可以应用到整型和字符型: short int(或short)短整型 long int(或long)长整型 unsigned int无符号整型 unsigned short无符号短整型 unsigned long无符号长整型 unsigned char无符号字符型 1.整型 数据的取值范围服从数学式子2n,其中n是这种类型所占内存位数,例如,如果int 型是16位,它的数据取值范围在-2n~2n-1,即-32768~32767之间。无符号的数总是正数或零,而unsigned int型数据取值范围在0~2n+1-1,即0~65535之间。 ANSI C标准没有规定以上各类数据所占内存位数,只要求short型数据不长于int型,而long型不短于int型,具体如何实现,由各编译系统决定。表2-1列出了ANSI C标准定义的整型数据的最小取值范围。 表2-1数据类型最小取值范围 数据类型所占位数最小取值范围 Int16-32768~32767 Short16-32768~32767 Long32-21亿~21亿 Unsigned int160~65535 Unsigned short160~65535 Unsigned long320~42亿 2.浮点数据类型 浮点型数据也称为实数,可以是数字0.0和包含小数点的正数或负数。 C语言支持三种浮点数据类型:浮点型也称单精度型(float)、双精度型(double)和长双精度型(long double)。这些数据类型之间的差别是编译器为每种类型分配的存储数量。一般情况下,为双精度浮点数采用的存储数量是浮点数采用的数量的两倍,这使双精度浮点数的精度大约是浮点数的两倍。使用sizeof(类型)可以显示你的编译器为每种数据类型提供的存储数量(字节数)。 当前的C编译器所提供的float型在内存中占用4个字节(32位),提供7位有效数字,可能的取值范围在-10-38~1038;double型数据占8个字节,提供15~16位有效数据,可能的取值约-10-308~10308。浮点型数据的存储符合IEEE浮点数格式,如float型数据,1位用于符号,8位用于指数,23位用于基数。 3.字符型 字符型数据用于存储单个的字符,存储时占用8位,它实际存储的是字符对应的ASCII 码(Americal Standard Code for Information Interchange美国标准信息交换码)。如一个char型数据’A’,其ASCII码为65,故实际存储的内容是65。char型数据取值范围为-128~127,unsigued char型数据取值范围为0~255。字符有符号或无符号是依赖于机

第二章习题

第2章 一、选择题 1.下列()是合法的标识符? (A)12class (B)void (C)-5 (D)_blank 2.下列()不是Java中的保留字? (A)if (B)sizeof (C)private (D)null 3.下列()不是合法的标识符? (A)$million (B)$_million (C)2$_million (D)$2_million 4.下列选项中,()不属于Java语言的基本数据类型? (A)整数型(B)数组(C)浮点型(D)字符型 5.下列关于基本数据类型的说法中,不正确的一项是()。 (A)boolean类型变量的值只能取真或假 (B)float是带符号的32位浮点数 (C)double是带符号的64位浮点数 (D)char是8位Unicode字符 6.下列关于基本数据类型的取值范围的描述中,正确的一个是()。 (A)byte类型的取值范围是-128~128 (B)boolean类型的取值范围是真或假 (C)char类型的取值范围是0~65536 (D)short类型的取值范围是-32767~32767 7.下列关于Java语言简单数据类型的说法中,正确的一项是()。 (A)以0开头的整数代表8进制整型常量 (B)以0x或0X开头的整数代表8进制整型常量 (C)boolean类型的数据作为类成员变量的时候,相同默认的初始值为true (D)double类型的数据占计算机存储的32位 8.下列Java语句中,不正确的一项是()。 (A)$e, a, b = 10; (B)char c, d = ‘a’; (C)float e = 0.0d; (D)double c = 0.0f; 9.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是()。 (A)byte的默认值是0 (B)boolean的默认值是false (C)char类型的默认值是’\0’(D)long类型的默认值是0.0L 10.下列语句中不正确的一个是()。 (A)float f = 1.1f; (B)byte b = 128; (C)double d = 1.1/0.0; (D)char c = (char)1.1f; 11.下列表达式1+2+ "aa"+3的值是()。 (A)"12aa3" (B)"3aa3 " (C)"12aa" (D)"aa3" 12.已知y=2, z=3, n=4,则经过n=n+ -y*z/n运算后n的值为()。 (A)3 (B)-1 (C)-12 (D)-3 13.已知a=2, b=3,则表达式a%b*4%b的值为()。 (A)2 (B)1 (C)-1 (D)-2 14.已知x=2, y=3, z=4,则经过z- = --y – x--运算后,z的值为(D )。

C语言各种数据类型在系统中占的字节和取值范围

C语言各种数据类型在系统中占的字节和取值范围 2011-12-28 19:34 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值范围: 符号属性长度属性基本型所占位数取值范围输入符举例输出符举例 -- -- char 8 -2^7-2^7-1 %c %c、%d、%u signed -- char 8 -2^7-2^7-1 %c %c、%d、%u unsigned -- char 8 0-2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0~2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0~2^32-1 %lu、%lo、%lx [signed] long long[int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long[int] 64 0~2^64-1 ~2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/-1.79769e+308 %lf、%le、%lg %f、%e、%g

C语言数据类型及表示范围

C语言各种数据类型在系统中占的字节和取值围 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值围: 符号属性长度属性基本型所占位数取值围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。

基本类型的输出格式

基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对 于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值范围: 符号属性长度属性基本型所占位数取值范围输入符举例输出符举例 -- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x

-- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。 可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。 2. char/signed char/unsigned char型数据长度为1字节; char为有符号型,但与signed char是不同的类型。 注意! 并不是所有编译器都这样处理,char型数据长度不一定为1字节,char 也不一定为有符号型。 3. 将char/signed char转换为int时,会对最高符号位1进行扩展,从而造成运算问题。 所以,如果要处理的数据中存在字节值大于127的情况,使用unsigned char 较为妥当。 程序中若涉及位运算,也应该使用unsigned型变量。 4. char/signed char/unsigned char输出时,使用格式符%c(按字符方式);或使用%d、%u、%x/%X、%o,按整数方式输出; 输入时,应使用%c,若使用整数方式,Dev-C++会给出警告,不建议这样使用。 5. int的长度,是16位还是32位,与编译器字长有关。 16位编译器(如TC使用的编译器)下,int为16位;32位编译器(如VC 使用的编译器cl.exe)下,int为32

java中基本数据类型的取值范围

我们前面提到变量的声明格式:变量类型变量名; 这里我们学习JAVA的数据类型. 数据类型可以分为两大类: 1)基本类型; 2)扩展类型。 本节中,我们就一起来学习一下Java语言的基本数据类型。它包括类型描述取值范围 Boolean 布尔型只有两个值true、false Char 字符型 Byte 8位带符号整数 -128到127之间的任意整数 Short 16位无符号整数 -32768~32767之间的任意整数 Int 32位带符号整数 -2^31到2^31-1之间的任意整数 Long 64位带符号整数 -2^63到2^63-1之间的任意整数 Float 32位单精度浮点数根据IEEE754-1985标准 Double 64位双精度浮点数根据IEEE754-1985标准 一些提示: 不象其它程序设计语言,Java语言中的整型的位数是固定的,而不会根据硬件平台以及操作系统的不同而不同。 1> boolean型 在上一章的逻辑运算符中,我们就已经看到过了取值为true和false的变量,这种变量称为boolean型变量。 实例说明 源程序:test601.java public class test601 { public static void main(string args[]) { boolean x=true; boolean y=false; System.out.println("x&&y="+(x&&y)); System.out.println("x||y="+(x||y)); System.out.println("x^y="+(x^y)); System.out.println("!x="+(!x)); } }

C语言数据类型及取值范围

C语言数据类型及取值范围 速查表: char -128 ~ +127 (1 Byte) short -32767 ~ + 32768 (2 Bytes) unsigned short 0 ~ 65535(2 Bytes) int -2147483648 ~ +2147483647 (4 Bytes) unsigned int 0 ~ 4294967295 (4 Bytes) long == int long long -9223372036854775808 ~ +9223372036854775807 (8 Bytes) double 1.7 * 10^308 (8 Bytes) unsigned int 0~4294967295 long long的最大值:9223372036854775807 long long的最小值:-9223372036854775808 unsigned long long的最大值:1844674407370955161 __int64的最大值:9223372036854775807 __int64的最小值:-9223372036854775808 unsigned __int64的最大值:18446744073709551615 符号属性长度属性基本型所占位数取值范围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c 、 %d 、 %u signed -- char 8 -2^7 ~ 2^7-1 %c %c 、 %d 、 %u unsigned -- char 8 0 ~ 2^8-1 %c %c 、 %d 、 %u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu 、 %ho 、 %hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u 、 %o 、 %x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu 、 %lo 、 %lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %lld,%llx -- -- float 2e+32 +/- 3.4028038 %f 、 %e 、 %g -- -- double 64 +/- 1.79769e+308 %lf 、 %le 、 %lg %f 、 %e 、 %g -- long double 96 +/- 1.79769e+308 %Lf 、 %Le 、 %Lg 几点说明: 1. 注意 ! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如: char 、 signed char 、 unsigned char 是三种互不相同的类型; int 、 short 、 long 也是三种互不相同的类型。

char,short ,int ,long,long long,unsigned long long数据范围

char,short ,int ,long,long long,unsigned long long数据范围 速查表: char -128 ~ +127 (1 Byte) short -32767 ~ + 32768 (2 Bytes) unsigned short 0 ~ 65535 (2 Bytes) int -2147483648 ~ +2147483647 (4 Bytes) unsigned int 0 ~ 4294967295 (4 Bytes) long == int long long -9223372036854775808 ~ +9223372036854775807 (8 Bytes) double 1.7 * 10^308 (8 Bytes) unsigned int 0~4294967295 long long的最大值:9223372036854775807 long long的最小值:-9223372036854775808 unsigned long long的最大值:18446744073709551615 __int64的最大值:9223372036854775807 __int64的最小值:-9223372036854775808 unsigned __int64的最大值:18446744073709551615 详细教程: ==================== 符号属性长度属性基本型所占位数取值范围输入符举例输出符举例 -- -- char 8 -2^7 ~ 2^7-1 %c %c 、 %d 、 %u signed -- char 8 -2^7 ~ 2^7-1 %c %c 、 %d 、 %u unsigned -- char 8 0 ~ 2^8-1 %c %c 、 %d 、 %u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu 、 %ho 、 %hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u 、 %o 、 %x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu 、 %lo 、 %lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u 、 %I64o 、 %I64x -- -- float 32 +/- 3.40282e+038 %f 、 %e 、 %g -- -- double 64 +/- 1.79769e+308 %lf 、 %le 、 %lg %f 、 %e 、 %g -- long double 96 +/- 1.79769e+308 %Lf 、 %Le 、 %Lg

C语言常见考试题型

常见考试题型 选择题(13年20题,每题1分,共20分) 填空题(13年20分,基本概念、写程序运行结果、完善程序)判断题(13年10题、每题1分,共10分) 编程题(13年4题,共40分) 其他题型 练习题选讲 选择题 (1)一个C程序的执行是从。 A)本程序的main函数开始,本程序的main函数结束 B)本程序的第一个函数开始,本程序的最后一个函数结束 C)本程序的main函数开始,本程序的最后一个函数结束 D)本程序的第一个函数开始,本程序的main函数结束 (2)C语言源程序名的后缀是。 A).exe B).c C).obj D).cpp (3)以下不能用作C语言中的标识符的是。 A)_ab12cd B)ab12cd_ C)12abcd D)ab12_cd (4)下面关于字符常量的说法错误的是。 A)一个字符常量代表ASCII字符集中的一个字符 B)单引号中的大写字母和小写字母代表不同的字符常量 C)字符常量只能包含一个字符 D)字符常量可以用单引号或双引号括起来 (5)以下程序运行后的输出结果是。 #include main() { int a=1,b=0;

printf(“%d,”,b=a+b); printf(“%d\n”,a=2*b); } A)0,0 B)1,0 C)3,2 D)1,2 (6)以下关于C语言中初始化的说法中正确的是。 A)若整型变量在定义时没有初始化,则此时变量的值为0 B)若整型变量在定义时没有初始化,则变量的值是空值 C)若整型数组在定义时做了不完全初始化,则无法确定未指定值的数组元素的取值 D)变量定义时如果没有初始化,则无法确定该变量的值 (7)已知字符A的ASCII码值是65,以下程序。 #include void main( ) { char a='A'; int b=20; printf("%d,%o",(a=a+1),b ); } A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值 C)输出结果为20,142 D)输出结果为66,24 (8)下列说法中错误的是。 A)只能在循环体内使用break语句 B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 C)在while和do-while循环中,continue语句并没有使整个循环终止 D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,继续执行下次循环 (9)若变量已正确定义并赋值,不符合C语言语法的表达式是。 A)a=a+7 B)a=7+b+c,8 C)a>b && b>c D)a=a+7=c+b (10)设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是。 A)0至255 B)0至65535 C)0至32767 D)-32768至32767 (11)以下程序的输出结果是。 main() { int x=10,y=10; printf(“%d %d\n”,x--,--y); } A)10 9 B)9 9 C)9 10 D)10 10 (12)若以下选项中的变量已正确定义,则正确的赋值语句是。 A)x1=26.8%3 B)x3=0x12 C)1+2=x2 D)x4=1+2=3; (13)以下表示数学式子“a=b) && !(b>=c) D)!(a>=b || b>=c) (14)已知字符A的ASCII码值是65,以下程序。

c程序设计第三版习题参考解答(全)

C程序设计(第三版)课后习题参考解答 第1章C语言概述 1.5 参照本章例题,编写一个C程序,输出以下信息: ****************************** Very Good! ****************************** 解: main ( ) {printf(“****************************** \n”); printf(“\n”); printf(“Very Good! \n”); printf(“\n”); printf(“****************************** \n”); } 1.6 写一个程序,输入a,b,c三个值,输出其中最大者。 解: main ( ) {int a,b,c,max; printf(“请输入三个数a,b,c: \n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if (max

C语言常见考试题型

C语言常见考试题型

常见考试题型 选择题(13年20题,每题1分,共20分) 填空题(13年20分,基本概念、写程序运行结果、完善程序) 判断题(13年10题、每题1分,共10分) 编程题(13年4题,共40分) 其他题型 练习题选讲 选择题 (1)一个C程序的执行是从。 A)本程序的main函数开始,本程序的main函数 结束 B)本程序的第一个函数开始,本程序的最后一个 函数结束 C)本程序的main函数开始,本程序的最后一个 函数结束 D)本程序的第一个函数开始,本程序的main函 数结束

(2)C语言源程序名的后缀是。 A).exe B).c C).obj D).cpp (3)以下不能用作C语言中的标识符的是。 A)_ab12cd B)ab12cd_ C)12abcd D)ab12_cd (4)下面关于字符常量的说法错误的是。 A)一个字符常量代表ASCII字符集中的一个字符 B)单引号中的大写字母和小写字母代表不同的字符常量 C)字符常量只能包含一个字符 D)字符常量可以用单引号或双引号括起来(5)以下程序运行后的输出结果是。 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d\n”,a=2*b); } A)0,0 B)1,0 C)3,2

D)1,2 (6)以下关于C语言中初始化的说法中正确的是。 A)若整型变量在定义时没有初始化,则此时变量的值为0 B)若整型变量在定义时没有初始化,则变量的值是空值 C)若整型数组在定义时做了不完全初始化,则无法确定未指定值的数组元素的取值 D)变量定义时如果没有初始化,则无法确定该变量的值 (7)已知字符A的ASCII码值是65,以下程序。 #include void main( ) { char a='A'; int b=20; printf("%d,%o",(a=a+1),b ); } A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值 C)输出结果为20,142 D)输出结果为66,24 (8)下列说法中错误的是。

相关主题
文本预览
相关文档 最新文档