随笔分类 -  编程基础

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