1、整数是以补码的形式转换为二进制代码存储在计算机中。
实数是以IEEE754标准转换为二进制代码存储在计算机中。
字符本质实际也与整数的存储方式相同(先通过ASCII码把字符转换为对应的整数,再按整数以补码形式转换为二进制)。
2、char型常量(字符),在计算机中是按其ASCII值进行存储,ASCII是"整型类"数据,在内存中全部以补码形式进行存放。
补码是一种二进制数据表示形式。整数分为正数、负数和零,计算机设计初期,规定,以字节的最高位表示符号,其余位表示数值,来表示有符号数据,这就是原码。但原码表示法中出现了”正0“和”负0“的表示现象,因此,又研究出来了补码概念,最终用补码来进行数据的存储。
规定:
正数的原码与补码相同。
负数的补码=反码+1,
反码是原码符号位不变,其余位取反。
如:以一字节整数为例
-1的原码为:1000 0001
-1的反码为:1111 1110
-1的补码为:1111 1111
2. C语言中的'\n'在内存中的表示
是\n,如果输出到文本文件,并且用的是windows系统,就会自动转换为\r\n
3. c语言中字符型数据在内存中的存储形式是
字符型数据在内存中储存的是它的ASCII码值,它是一个字节,所有数据类型在内存中都是以0和1代码二进制储存的,这个原则不会变。
在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。
编码中,一个汉字字符存储需要2个字节。在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。在UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节。在UTF-32编码中,世界上任何字符的存储都需要4个字节。
(3)c语言在内存中用什么表示扩展阅读:
由于标准 ASCII字符集字符数目有限,在实际应用中往往无法满足要求。为此,国际标准化组织又制定了 ISO2022 标准,它规定了在保持与 ISO646 兼容的前提下将 ASCII字符集扩充为 8 位代码的统一方法。
ISO 陆续制定了一批适用于不同地区的扩充 ASCII字符集,每种扩充 ASCII 字符集分别可以扩充 128 个字符,这些扩充字符的编码均为高位为 1 的 8 位代码(即十进制数 128~255 ),称为扩展 ASCII 码。
4. 【19】在C语言中,char型数据在内存中的存储形式是( )
1、答案是D
在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。
C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。
2、原码、反码和补码是对数字的二进制定点的表示方法。
(4)c语言在内存中用什么表示扩展阅读:
1、在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
2、计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
5. 在c语言中,字符型数据在内存中以什么形式存放
c的char数据属于基本类型,基本类型其中还包括-整型,实型,枚举类型!
数据在内存中是以二进制形式存放的。数值是以补码表示的。
整型:
一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”
实型:
在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂次来表示指数部分!
6. 在C语言中,字符型数据在内存中以何种形式存放
C语言中,用Char定义一个变量,系统会为这个变量分配一个字节的空间,只能存放一个字符,如果是一串字符,就要用char定义一个数组,来存放字符串。
比如,你想存放一个字符串“Fuzhou”(一个以上字符),可以定义一个字符数组,假设数组名起名为cname,采用下列代码
char cname[]="Fuzhou";
或者
char cname[7];
cname[0]='F';
cname[1]='u';
cname[2]='z';
cname[3]='h';
cname[4]='o';
cname[5]='u';
cname[6]='\0';
前者是定义时赋值(初始化),后者是先定义后赋值,最后一个‘\0’,是字符串结束的标志。
C语言中,没有专门定义字符串的数据类型,但有一些关于字符串运算的函数。
7. C语言中整数在内存中的储存形式
无符号的整数和有符号的正整数都是用二进制原码来表示,而负整数则是使用补码来表示(补码的算法:负数的绝对值的原码安位取反再加一)。举个例子来说吧:
假设机器使用的是16位来存储整数。
10 的存在形式是0000000000001010
-10的存在形式:
(1) |-10| = 10 ,10原码为0000000000001010
(2)安位取反: 1111111111110101
(3)加1: 1111111111110110(最终结果)
8. c语言中的字符型数据是在内存中是以ascii码形式存储的,JAVA中的字符型数据是以Unicode码的形式存储的。
word07之前的是一种2进制自己编码的形式,也就是只有他的软件或者其他支持微软office接口的软件才能识别。
word07之后是一种压缩包的形式,比如word13几乎能用rar解压缩看到里面的所有xml文件,也就是先用unicode存储成xml带格式的文件,然后再打包,更加符合通用型,也是word向标准靠齐的一步。
这是我自己发现的,很可能不准确,以前用java poi解析word的时候查看了一下。
9. c语言中内存单元的地址是用什么进制表示的
用什么进制表示还不都一样……进制只是给人看看的,无论里写什么进制,计算机肚子里还不都是二进制……
10. C语言中整形数据在内存中的储存形式是什么
整形数据在计算机中的数据的保存和运算都是以二进制的形式进行的,但不是直接的原码,而是原码的补码,也就是说在计算机中,数据的运算都是以数据的补码进行的.
整型数据在内存中的存放形式
如果定义了一个整型变量i:
int
i=10;
【0000000000001010】
数值是以补码表示的:
n
正数的补码和原码相同;
n
负数的补码:将该数的绝对值的二进制形式按位取反再加1。
例如:
求-10的补码:
10的原码:
【0000000000001010】
取反:
【1111111111110101】
再加1,得-10的补码:【1111111111110110】
由此可知,左面的第一位是表示符号的。
整型数据在内存中所占的位数(如下图所示):