进制转换:碾除法
1.178 转2,8,16;
178转2步骤:
178除2得89余0;
89除2得44余1;
44除2得22余0;
22除2得11余0;
11除2得5余1;
5除2得2余1;
2除2得1余0;
OVER,最终结果为:10110010
178转8步骤:
178除8得22余2;
22除8得2余6;
OVER,最终结果:0262
178转16步骤:
178除16得B余2;
OVER,最终结果:0xB2
还有小数的转换方法:
十进制小数转换为二进制的方法是乘以2取整,如:
0.625*2 = 1.25 取整 1
0.25*2 = 0.5 取整0
0.5*2 = 1 取整1
(0.625)10 = (0.101)2
(0.25)10 = (0.01)2
(0.5)*2 = (0.1)2
课件习题:
指定字母A,输出小写。ASCI码中,小写比大写大32
#include <stdio.h>
void main(){
char c1 = 'A';
char c2 = c1 + 32;
printf("%c\n",c2); //输出小写字母
printf("%d",c2); //输出小写字母的ASCII码
getchar();
源码,反码,补码:正整数的三个码都是一样的,负数的反码是源码取反,补码是末位补1.
用二进制表示带符号的数值时,最高位是符号位,0代表正,1代表负。
一个int型数值有4个字节,一共32位,去掉最高位上的占位符,数值位还有31位,即数值位的最高位是2^30次方,所以正数一侧可以表示的最高位是0111 1111 1111 1111 1111 1111 1111 1111就是2^31-1。负数部分因为反码末位要补1,所以1000 0000 0000 0000 0000 0000 0000 0000才是负数一侧的最小值,即2^32,比正数部分多1.其他字节的带符号的字符取值方式与之相同。
遗漏的知识点:%x表示十六进制,&是地址符。