济南怎么做网站,长春火车站照片,莱芜官网,莱芜网站优化团队目录
一、为什么内存中存储补码#xff1f; 二、大小端概念
百度笔试试题#xff1a; 几道小题#xff1a; 一、为什么内存中存储补码#xff1f;
上一节我们了解了原码#xff0c;反码#xff0c;补码的概念#xff08;http://t.csdn.cn/N0grg#xff09;#xff…目录
一、为什么内存中存储补码 二、大小端概念
百度笔试试题 几道小题 一、为什么内存中存储补码
上一节我们了解了原码反码补码的概念http://t.csdn.cn/N0grg也知道了对于整型来说数据存放内存中存的是补码可是为什么存储补码而不存储宜于理解的原码呢这是因为计算机只有加法器如果只运算加法那么利用原码计算没有任何问题比如527 那么减法呢如果计算机是人脑那么它可能会这样计算10-28 但是注意计算机可不会像人脑一样认识减法实际的情况是CPU只有加法器也就是他只能计算加法却计算不了减法那么怎么办呢于是就有了补码的诞生比如我们要计算1-1这是计算机会把1-1识别为1-1并且以补码的方式计算如图 并且原码与补码的相互转换运算过程是相同的上节 http://t.csdn.cn/N0grg我们知道了原码转换为补码的方法那么由补码转换为原码很明显就是原码转化为补码的逆过程但是实际上他们可以是相同的运算过程如图 二、大小端概念
我们不难发现调试的内存监视窗口中数据似乎是倒着存储的如图 对于变量a这里的值应为0x000000140x表示十六进制可是内存中却倒着显示这是因为在计算机系统中存在着两种存储模式。
大端存储模式指数据的低位保存在内存的高地址中数据的高位保存在内存的低地址中。
小端存储模式指数据的低位保存在内存的低地址中数据的高位保存在内存的高地址中。 注意大小端字节序由机器本身决定与编译器无关。 百度笔试试题
请简述大端字节序和小端字节序的概念设计一个小程序来判断当前机器的字节序。
#includestdio.hint check_sys()
{int i 1;return (*(char*)i);
}int main()
{int ret check_sys();if (ret 1)printf(小端\n);elseprintf(大端\n);return 0;
} 几道小题
1下面代码的结果是255
int main()
{char a[1000] {0};int i0;for(i0; i1000; i){a[i] -1-i;}printf(%d,strlen(a));return 0;
}
可以利用头文件limits.h查询char可以存储多大的数据输入CHAR_MAX鼠标右击转到定义 即char类型存储数据大小范围是-128到127对于此题a[0]-1依此类推负数最多到-128而-128再-1由于char类型负数最多到-128所以此时a[i]的值会变为127再到0而strlen函数识别到\0\0的ASCII码值为0所以结果为128127255打印的结果为255。 在32位大端模式处理器上变量b等于
unsigned int a 0x1234;
unsigned char b*(unsigned char *)a;
大端序中低地址到高地址的四字节十六进制排列分别为00 00 12 34其中第一个字节的内容为00。