c语⾔符号⼩数点⽤法,C语⾔_第⼀讲_C语⾔⼊门1.C语⾔是⼀个标准,⽽执⾏标准的时候产⽣的⾃动化程序则是编译器
2.了解:1983年美国国家标准化歇会(ANSI)制定了C语⾔标准.
C语⾔的特点:
c语言char的用法3.代码的可移植性(理想状态是代码可以不加修改,就可以移植,前提是不包括任何平台相关库)
4.写代码的时候最好把业务逻辑层和UI层分开.这样便于代码的移植
5.结构化编程(可以把问题分解成⼀个⼀个的函数去执⾏)
6.丰富的数据类型(相对于汇编⽽⾔是丰富的)
7.简洁⾼效的代码(这得看⼈,不是编译器的或者语⾔的特性,如果算法写的不好,⼀样执⾏速度慢,和语⾔⽆关.反之则相反);
⼆、代码和调试之间的⽐例
1.调试和写代码的时间⽐例是2⽐8
2.写代码占2 调试的时间占8
3.UI和逻辑分离,UI占7,逻辑占2
三、&符号的双重⽤法
1.符号在C语⾔中的场景不⼀样,那么就会有不同的作⽤
2.列如:
3.++ + + 2个加号就和加号的意思不⼀样
4.+号可以看做是加好,也可以看做是数学上的±符号
5.所以不同场景⽤什么运算符会起到不⼀样的作⽤
6.&运算单独使⽤的时候可以看做是取地址符号,如果左边有操作数的时候可以看做是位与符号
四、程序的挂起状态的三种表现形式
1.Getchar()
2.Scanf(“%d”);
3.System(“pause);
4.其中system()这个函数是与平台相关的函数,所以加了这句话就不可跨平台了
五、Scanf的常见问题解析
1.scanf的⽤法:通过标准输⼊设备输⼊到程序中
2.第⼆个参数式地址变量,是放地址的.不放地址会把这个变量⾥⾯的值当做是⼀个地址
3.如果访问到不该访问的地址就会出错
4.分别有两个有⽤的信息是:
5.异常代码:c00005 意思就是访问了⼀个不该访问的地址
6.异常便宜:00026 可以定位到代码出错的位置
总结:如果没有填地址府,程序不崩溃那么以后可能会吃亏,程序会受影响
有隐患,如果遇到变量的值不再初始化那么会使⽤上次内存使⽤后残留的值
所以⼀定要给变量初始化.
六、批处理
Del *.exe 删除⽬录下所有的exe可执⾏的⽂件
Del *.obj删除⽬录下所有的.obj⽂件
Cl /c /W4 /WX ⽂件名.c编译⽂件名.c为obj⽂件
Link ⽂件名.obj连接⽂件名.obj⽂件名为⽂件名.exe可执⾏⽂件
⽂件名.exe运⾏可执⾏⽂件
Pause暂停窗⼝等待进⼀步的操作
七、浮点数
浮点数的查看
1.浮点数后边加上f列如 3.25f代表是⼀个浮点数
2.如果不加的话那么默认会认为是⼀个双精度的⼩数
ZERO零在不同场合的⽤法
Char ch = ‘ ’;
Int n = 0;
Int *p = NULL;
Float f = 0.0f;
Double db = 0.0;
切记软件的规范
⼩数转化为16进制的算法
1.第⼀步:将⼩数转化为⼆进制
假设有⼀个⼩数是4.25
那么先转化为⼆进制为:100.01
2.第⼆步:
把⼩数点定位为最前位1的后⾯,直到遇到第⼀位为1的值
那么现在是1.0001总共往左移动了2位那么可以看做是1.0001*2^2次⽅3.第三步:定义符号位
符号位0,因为4.25的是正数
4.第四步:定义指数为(指数为在32位系统下占8位 double 是11位)
⽽指数位是2^2的幂+127 他的次⽅(也就是幂)是2
所以就是2+127 = 129
转化为⼆进制是1000 0001 最后加上符号位是
0 1000 0001
5.第五步:确定尾数为(尾数位占23位不⾜的补零在)
直接把1.0001 把前边的1去掉放在指数为后⾯即可
0 1000 0001 0001 0000 0000 0000 0000 000
最后按照从右向左4位⼀体的分割⼆进制转化为16进制
0100 0000 1000 1000 0000 0000 0000 0000
4 0 8 8 0 0 0 0
按照⼩端模式就是00 00 88 40
⼗六进制转化为⼩数的实现
第⼀步:把给定的⼗六进制转化为⼆进制
44 22 00 00
0100 0100 0 010 0010 0000 0000 0000 0000
第⼆步:去掉符号位,取指数位(32位下是8位)
0是符号位去掉之后的值是
1000 1000 128 +8 = 136
第三步:⽤指数得出的值减去127 然后尾数从指数后⾯的前⾯加1然后往右移动 >>(指数减去127得出的值的位数)结果是136 - 127 = 7; 那么⼩数点就从刚才取出指数位
的后⾯往后移动7位
结果为:
注意:取出指数后,在后边指数后的位置加个1点(1.XXX为尾数)
(移动位置的时候也从1.后⾯开始算)
1.010 0010 0000 0000 0000 0000 (⼀.1.不算,从尾数开始移动
1 010 0010.0000 0000 0000 0000(⼆.移动后
第四步:把移动后的结果转化为10进制的数即可.
如果⼩数位有那么就是乘以(尾数有多少就乘以多少)
正确结果是:16进制的162.00
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论