禹城做网站的公司,情人做网站,网站建设 利润,优秀网站配色进制转换不多#xff0c;但我觉得适合小白(我爱夸自己嘿嘿)
练习
1. 确认基础类型所占用的内存空间(提示#xff1a;使用sizeof 运算符)#xff1a;
在这里我说一下#xff0c;long 类型通常占用 4 字节。在 64 位系统上#xff0c;long 类型通常也可为 8 字节。
格式…进制转换不多但我觉得适合小白(我爱夸自己嘿嘿)
练习
1. 确认基础类型所占用的内存空间(提示使用sizeof 运算符)
在这里我说一下long 类型通常占用 4 字节。在 64 位系统上long 类型通常也可为 8 字节。
格式化符sizeof对应的是%zu懒得改了%lu也行毕竟没报错
2.定义一个unsigned short 类型的变量,并赋值为0,确认该变量减一后的值是什么,(注意无符号数输出需要使用%u)
3.输入摄氏度转成华氏度输出 (摄氏 华氏-32/1.8)
4. 按下面要求转换数据 0356 -- 十六进制 0x47 --- 十进制 --- 八进制 1026 --- 八进制---- 十六进制
手算:这里按照方法一点点来我倒是学懂了
1.0356八进制数转十六进制先将0356每一位数转换为三位二进制数再由右向左每四位组在一起不够补零。ABCDEF代表的数字是10-15E是141414也就是EE
2.0x47(十六进制0x为前缀) 转十进制就直接乘以它本身的进制数比如十六进制就乘以它的进制数16十进制就算出来了((4*16^17*16^071)) 十六进制转八进制把十六进制数每一位数字转为四位的二进制数再由右向左每三个排在一起就可以了
3.1026十进制转八进制、十六进制 直接除以要转的进制数直至商为0看余数倒着数就可以如图所示。 代码:我暂时还不太会但我决定还是先放上来吧
#include stdio.h // 引入标准输入输出库
#include stdlib.h // 引入标准库用于处理转换int main(void)
{char hexInput[10]; // 声明一个字符数组用于存储十六进制输入int decimal, octal, hex; // 声明三个整型变量用于存储十进制、八进制和十六进制数// 八进制到十六进制printf(请输入一个八进制数); // 提示用户输入一个八进制数scanf(%o,octal); // 使用%o格式符读取八进制数并存储在变量octal中hex octal; // 将八进制数直接赋值给十六进制数变量hex因为八进制和十六进制数在数值上是一一对应的sprintf(hexInput,%x,hex); // 使用sprintf函数将十六进制数转换为字符串表示并存储在hexInput中printf(八进制数 %o 转换为十六进制数 %s\n,octal,hexInput); // 打印转换结果// 十六进制到十进制printf(请输入十六进制数); // 提示用户输入一个十六进制数scanf(%s,hexInput); // 使用%s格式符读取字符串形式的十六进制数decimal (int)strtol(hexInput,NULL,16); // 使用strtol函数将十六进制字符串转换为十进制整数printf(十六进制数 %s 转换为十进制数是 %d\n,hexInput,decimal); // 打印转换结果//十六进制转八进制printf(请输入十六进制数:);scanf(%s,hexInput);hex (int)strtol(hexInput,NULL,16); // 将十六进制数先转换为十进制octal hex;// 将十进制数直接赋值给八进制数变量octal因为十六进制和八进制的数值一一对应printf(十六进制数 %s 转换为八进制数是: %o\n,hexInput,octal);// 打印转换结果// 十进制到八进制printf(请输入一个十进制数); // 提示用户输入一个十进制数scanf(%d,decimal); // 使用%d格式符读取十进制数octal decimal; // 十进制数直接赋值给八进制数变量octal因为它们在数值上也是一一对应的printf(十进制数 %d 转换为八进制数 %o\n,decimal,octal); // 打印转换结果// 十进制到十六进制printf(请输入一个十进制数); // 提示用户输入一个十进制数scanf(%d,decimal); // 使用%d格式符读取十进制数sprintf(hexInput,%x,decimal); // 使用sprintf函数将十进制数转换为十六进制字符串表示printf(十进制数 %d 转换为十六进制 %s\n,decimal,hexInput); // 打印转换结果return 0; // 程序结束
}
1、通过键盘输入一个通话秒数编程显示通话用了几分钟几秒。
这里注意if语句应该是if(sec 0),可以秒数可以为0我懒得改动了代码是改动过的
/*1、通过键盘输入一个通话秒数编程显示通话用了几分钟几秒.*/#include stdio.hint main(void)
{int sec;int min;printf(请输入通话的秒数:);scanf(%d,sec);if(sec 0){printf(输入错误通话时间不能为负数请重新输入\n);return 1;}min sec / 60;sec % 60;printf(通话了%d分钟%d秒\n,min,sec);return 0;}2、输入身高公制(cm)转换成英制(inch)(1inch 2.54cm)。
/*2、输入身高公制(cm)转换成英制(inch)(1inch 2.54cm)*/#include stdio.hint main(void)
{float height_cm,height_inch;printf(请输入您的身高(cm):);scanf(%f,height_cm);if(height_cm 0){printf(身高不能为负数请重新输入\n);return 1;}height_inch height_cm / 2.54;printf(您的身高是%.2f英寸\n,height_inch);return 0;}3、输入身高和体重计算BMI指数(BMI w/(h*h))。
/*3、输入身高和体重计算BMI指数(BMI w/(h*h))。*/#include stdio.hint main(void)
{float wei,hei,bmi;printf(请输入您的体重(kg):);scanf(%f,wei);printf(请输入您的身高(m):);scanf(%f,hei);bmi wei / (hei * hei);printf(您的BMI指数是: %.2f\n,bmi);return 0;}4.已经字符变量的值为 p,如何使得该变量的输出为 M,写出程序;
/*4.已经字符变量的值为 p,如何使得该变量的输出为 M*/
/*p ASCII码112 M 77*/#include stdio.hint main(void)
{char var p;var - 35;printf(%c\n,var);return 0;}
5.将数字8输出为8;
变量a被赋予了整数值8。当printf使用%c格式说明符时它会将整数8转换为其对应的ASCII字符即输出字符’8’。我是这么理解的当然也可以直接输出字符8.
/*5.将数字8输出为8*/#include stdio.hint main(void)
{int a 8;printf(%c\n,a);return 0;}//只输出字符8
printf(%c\n,8);
6. 写出整型数 -56 在内存中的存储数据如果将该内存的存储数据当作无符号整型数则值是多少(没记错的话补码是其在存储方式)四个字节也就是11001000 11001000 11001000 1100100 内存存储方式 按照整数数据的补码方式存放 原码 整型数据的二进制形式 有符号整数 (最高位符号位 (0:正数1:负数)) 数据位 无符号 所有的二进制位都是数据位 反码: 除了符号位外其余数据位取反(0---1, 1---0) 补码: 反码 1
正数 原码反码 和补码是相同的 负数 最高位符号位其余位为数据位采用补码方式存储
差不多上述算就完事好像是这样不确定就这样啦我会的话会回来精进的啦数应当是对的让C自己算的哈哈哈 /*6. -56 如果将该内存的存储数据当作无符号整型数则值是多少*/#include stdio.hint main(void)
{int a -56;printf(%u\n,a);return 0;}
.