随笔分类 - 编程基础
摘要:源程序如下:#include #include int main(int argc, char *argv[]){ float a,b,c,x1,x2,p,q,dish; scanf("%f%f%f",&a,&b.&c); dish=b*b-4*a*c; if(fab...
阅读全文
摘要:先看下面一段程序,这段程序摘自《C 专家编程》:#include int array[] = {23,34,12,17,204,99,16};#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array[0]))int main...
阅读全文
摘要:这样一个题,据说是微软面试题:unsigned int i=3;cout<<i * -1;问结果是多少。 第一反应:-3。不过结果似乎不是这样的,写了个程序,运行了一下,发现是:4294967293。很诡异的一个数字,怎么也想不明白为什么会是这么个奇怪的数字。但是在我...
阅读全文
摘要:char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed。虽然char在标准中是unsigned(因为char类型提出的初衷是用来表示ascii码,ascii码的范围是0~127),...
阅读全文
摘要:#includevoid main(){ int l=-1; unsigned int c=135;printf("%u\n",l+c);}这个的结果134,而不是我之前认为的很大的正数,实际上需要注意的是-1(0xffffffff)被提升为unsigned int后...
阅读全文
摘要:本文谈论的都为有符号数。这得从二进制的原码说起:二进制原码最大为0111111111111111=215-1=32767二进制原码最小为1111111111111111=-(215-1)=-32767正0和负0:0000000000000000=10000000000...
阅读全文
摘要:我不想介绍什么原码和补码的概念,只是为了自己重拾编程的一点小积累。原码:原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。正数的原码为其本身,负数的原码是取绝对值后将最高位变1;如何...
阅读全文
摘要:字 符编码相信是每个程序员的噩梦,只要是有中文的地方,总是会遇到各种编码的问题,并且这种问题还非常难缠,尤其在linux上,因为上面很多软件都是针对 英语国家开发的,是不会考虑其他语种编码问题。在遇到编码的无数大坑之后,我决定仔细研究下编码问题,因为这就像一道坎一直横...
阅读全文