变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型决定的
源码,反码,补码
源码:
直接将正负数的形式翻译为二进制即可
反码:
对源码符号位不变,其他位按位取反
补码:
对反码加1
大端小端
大端:
数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中
小端:
数据的低位保存在内存的低地址中,数据的高位保存在内存的高地址中
#include <stdio.h>
int check_sys()
{
int i = 1;
return (*(char*)&i);
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
运行结果:
练习:
1.字符转整型
#include <stdio.h>
int main()
{
char a = -1;
signed char b = -1;
unsigned char c = -1;
printf("a=%d,b=%d,c=%d", a, b, c);
return 0;
}
运行结果:
-128
#include <stdio.h>
int main()
{
? ?char a = -128;
? ?printf("%u\n",a);
? ?return 0; }
#include <stdio.h>
int main()
{
? ?char a = 128;
? ?printf("%u\n",a);
? ?return 0; }
4.加法
#include<stdio.h>
int main()
{
int i = -20;
unsigned int j = 10;
printf("%d\n", i + j);
return 0;
}
5.循环打印
#include<stdio.h>
int main()
{
unsigned int i;
for (i = 9; i >= 0; i--)
{
printf("%u\n", i);
}
}
6.求字符串长度
int main()
{
? ?char a[1000];
? ?int i;
? ?for(i=0; i<1000; i++)
? {
? ? ? ?a[i] = -1-i;
? }
? ?printf("%d",strlen(a));
? ?return 0; }
7.循环打印
#include <stdio.h>
unsigned char i = 0;
int main()
{
for (i = 0; i <= 255; i++)
{
printf("hello world\n");
}
return 0;
}
2.浮点数在内存中的存储
根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:
(-1)^S M 2^E
(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。
M表示有效数字,大于等于1,小于2
2^E表示指数位
原文:https://blog.51cto.com/14946385/2549472