请教两个C语言的问题!!

来源:百度知道 编辑:UC知道 时间:2024/05/03 09:15:31
请问字符保存在内存中都是以几进制的呢?ascll码都是通用的吗?

int整型数占用两个字节,如果这个数是12345的话甚至更大,两个字节好像存不下吧?单精度4字节,如数是:1234567.123456的话
他又是如何保存的呢?实在太菜,请指教!!!

内存保存的是数,和进制无关,进制是把数写成一种人看的格式的标准,比如十进制10,和16进制0a是相等的数,内存保存的是数,只有把数输出给人看的时候,才有进纸的区别。

字符在内存的保存格式,对标准C使用ascii码保存,但vc可以把字符串保存为unicode格式。ascii码是通用的,不过有新的标准即unicode,二者目前并用,其中java则使用unicode字符。

int不一定是2字节,在最常用的编译器visual c++中,int型是4个字节,数字如果大道一定程度,int型是装不下的,这叫做溢出,编程序的时候要考虑int最大能够表示的整数范围,避免溢出,否则程序就会出错。

float型的保存格式比较复杂,4个字节中,有3个字节表示有效数字,1个字节表示指数。

在内在的都是二进制的吧,如果数字太大,比如一个有符号单字节数可以存数的范围是-128--127,当你往这个单元存一个不在这个范围的数的时候,如比,128,就会发生溢出,

请学习数据结构及指针!

现有的所有芯片ASCII码都是通用的,标准C的字符是1个字节,8位二进制码。
int在不同平台字节数不同,VC里面就是4个字节。如果超过范围,会把低位截取下来赋给那个变量,比如short a=0x1e240,超过了short的范围(0x0-0xffff),那么a的值就是后面两个字节,也就是0xe240
单精度数的保存是这样的,前面23位是尾数,后面8位是指数,再后面一位是符号。

可以用long float, long int等数据类型。