int main() { int a = 3; //原码反码补码:00000000 00000000 00000000 00000011 // 00 00 00 03 int b = -1; //原码:10000000 00000000 00000000 00000001 //反码:11111111 11111111 11111111 11111110 //补码:11111111 11111111 11111111 11111111 // FFFFFFFF return 0; } int main() { int c = 1 - 1; //CPU加法器 //1+(-1) //00000000 00000000 00000000 00000001 //10000000 00000000 00000000 00000001 //10000000 00000000 00000000 00000010 - 原码计算 - err //00000000 00000000 00000000 00000001 //11111111 11111111 11111111 11111111 //100000000 00000000 00000000 00000000 -补码计算 - 0 //因此计算存储数据都是补码 return 0; }
#include<stdio.h> //测试编译器是小端还是大端 int main() { int a = 1;//00 00 00 01 //低 高 //大端 //00 00 00 01 //小端 //01 00 00 00 char* p = (char*)&a; if (*p == 1) { printf("小端\n"); } else { printf("大端\n"); } return 0; } //封装函数 int check_sys() { int a = 1; return (*(char*)&a); } int main() { int ret = check_sys(); if (1 == ret) { printf("小端\n"); } else { printf("大端\n"); } return 0; }
输出结果:
#include <stdio.h> int main() { char a = 128; printf("%u\n", a);//%u 打印无符号整数 return 0; }输出结果:232 -27
#include<stdio.h> #include<windows.h> //死循环 int main() { unsigned int i;//i>=0 for (i = 9; i >= 0; i--)//满足条件死循环打印 { printf("%u\n", i); Sleep(1000); } return 0; } int main() { char a[1000]; int i; for (i = 0; i<1000; i++) { a[i] = -1 - i; } printf("%d", strlen(a)); return 0; }输出结果:
unsigned char i = 0;//i<=255 int main() { for (i = 0; i <= 255; i++)//一直满足条件死循环 { printf("hello world\n"); } return 0; }
limits.h
int main() { int n = 9; //00000000 00000000 00000000 00001001 float *pFloat = (float *)&n; printf("n的值为:%d\n", n);//9 printf("*pFloat的值为:%f\n", *pFloat); //0 00000000 00000000000000000001001 //E为-126 (-1)^0*0.00000000000000000001001 //无穷小 *pFloat = 9.0; //9.0 //1001.0 //1.001*2^3 //0 10000010 00100000000000000000000 printf("num的值为:%d\n", n);//很大的值 printf("*pFloat的值为:%f\n", *pFloat);//9.0 return 0; }
输出结果:
