首页 > 代码库 > C 中细节问题的试题
C 中细节问题的试题
下面函数的功能是什么?仔细分析!
#include<stdio.h> #include<Windows.h> //函数的功能 // a<0 输出0 // 0<=a<=255 输出 a // a>255 输出255 unsigned char function(int a) { if(a&(~0xff)) { return (-a)>>31; }else { return a; } } int main() { int n=0; n=function(-55); printf("%d\n",n); system("pause"); return 0; }
下面的代码的有结果吗?为什么?
int a=1; a+=++(a++); //此时a的值是多少?
解析:编辑错误,数值不能进行自增运算。
Question:若一个视频中图像分辨率为1920*1080,每像素采样精度为16-bit,每秒25帧图像,则每秒图像占内存(1920*1080*25*16)/8_byte(所有数据连续存放)
16-bit=2byte 1920*1080表示的是像素点
图像分辨率之1080P与1080i
int16_t x=32767; x++; printf("%d",x);输出的结果是什么?
int16_t x=32767; // -32768 why????
//
//16位int范围-32768~32767
x++; printf("%d",x);
上面的问题可以和下面的问题同解:
int x=-32769; printf("%d",x); //为什么输出的结果是32767?
这是int型数据溢出的问题,16位int范围-32768~32767
所以-32769超出了int范围,-32768多减一个就变成了32767
如何理解多减一个:可以往数的进制上面考虑,不够就往回挪了一个(自己的理解)
C 中细节问题的试题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。