标准ASCII码表中,英文字母K的16进制码值是4B,求二进制ASCII码1001000对应字符?
在标准ASCII码表中英文字母的编码是按照英文字母表的顺序排列的,既然已知英文字母K的十六进制码值是4B,那么二进制ASCII码1001000(其十六进制码值为48)对应的字符从K倒推4B-48=3个字母:K(4B)->J(4A)->I(49)->H(48),自然就是H了。
表述方式:
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
c语言如何实现四舍五入?
在c语言中这个问题是有多种解决方法的。
假设我们有个数字3.1415926...我们要在它指定的小数位置上四舍五入。假设第4位四舍五入,要得到结果3.142000
我们需要如下程序:
#include<stdio.h>
int main()
{double num1,num2;
num1=3.1415926;
num1=(int)(num1*1000+0.5);//利用强制类型转换运算将数字第3位以后的小数部分舍去
num2=num1/1000; //再将得到的数除以1000还原
printf("%f",num2);
return 0;
}
如果你是在C99规范的编译器中,就可以直接使用round函数
用法如下:
#include<stdio.h>
int main()
{
num1=3.1415926,num2;
num2=num1*1000;
num2=round(num2)/1000;//round(x)返回x的四舍五入整数值,就舍去后面的小数了。
printf("%f",num2);
return 0;
}
如果你仅仅是要四舍五入输出一个浮点数,我们可以直接这样
#include<stdio.h>
int main()
{
double num1;
num1=3.1415926;
printf("%.3f",num1);//0.3是附加格式字符,意为保留小数点后面3位,自动四舍五入
return 0;
}
利用取整运算的截断特点实现。
比如:int a=0.75;取整后赋值给a的是0,小数点后面的被截断了。
如果要做整数的四舍五入,那么可以:a=(int)(0.75+0.5);取整后得到的与数学中四舍五入的结果一致,都是1;
如果要进行小数点后面的四舍五入,可以这样计算:
要保留小数点后面两位的小数,即在小数点后面两位上做四舍五入,0.756
float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;
运算是这样的:先将0.756乘以100,得到75.6,然后利用取值运算的截断做四舍五入,75.6+0.5=76.1取整后等于76,再除以100,得到结果:0.76
C语言:输入一个四位正整数,求出该数对应的各位数字并输出,最后将千位和十位互换,百位何个位互换?
#include <stdio.h>int main(){ int number; printf(请输入0~9999的数字:); scanf(%d,&number); if(number>9999||number<0) { printf(请输入0~9999的数字:); return 0; } int ones=number%10,tens=number/10%10,hundreds=number/100%10,thousands=number/1000%10; printf(个位:%d\n,ones); printf(十位:%d\n,tens); printf(百位:%d\n,hundreds); printf(千位:%d\n,thousands); printf(互换:%d\n,tens*1000+thousands*10+ones*100+hundreds); return 0;}

