c语言(基础重点)

一、字节数
(1)整数类型:
短整型 short 2
整型 int 4
长整型 long 4 不同的操作系统不同 4或8
(2)浮点型:
单精度浮点型 float 4
双精度浮点型 double 8
(3)字符型:
char 1

二、补码:(1)正数:原码就是补码(原码补码反码一样)
(2) 负数:反码(不包括符号位)+1
三、(1)二进制(补码)转8进制和16进制
举例:例如*(-15)
二进制(32位):1+23个1+0001《过程:1+23个0+1111-->1+23个1+0000-->1+23个1+0001》
八进制:37777777761《过程:从左到右每3位等1位八进制不足左端补0。》
十六进制:0xfffffff1《过程:从左到右每4位等1位十六进制》
234:
二进制:24个0 1110 1010
八进制:00000000351
十六进制:0xea

注意问题:
(1)int a=0;
float f;
f=a=3.14;//a=3.14;a=3;f=3.0000
(2)++ --
int z = x++; // z=x; x=x+1;
int z = ++x; // x=x+1; z=x;
前加加(减减) 先自增(减),然后再运算
后加加(减减) 先运算,然后再自增(减)
int y = x++ + ++x;
x = x++ + ++x;
(i)不要在同一个表达式中对同一个变量进行多次自增减运算
(ii)浮点类型数据可以进行++--,但很少用
后加加和后减减:自身运算完成后再运算。
(3)signed+unsigned-->unsigned
char->int 8bit扩充成32bit 24补char的最高位
举例:
char c = 234;//1110 1010
printf("%d\n",c);// 补24个1 1110 1010-->-22
printf("%u\n",c);// 补24个1 1110 1010-->4294967274
c = 123;//0111 1011
printf("%d\n",c);//整数补码原码一样-->123
printf("%d\n",c);//123

     (4)遇到有符号的二进制时第一位为1,减去1,取反(但是最高位1一直不变)
posted @ 2019-07-13 13:50  3293076610  阅读(265)  评论(0编辑  收藏  举报