16进制转换成10进制对应的asc2码,并没有对应汉字。。所以你要用16进制来表达爱,只有转化为英文,也就是love,下面是四个字母的十六进制表示
l :0x6c
o:0x6f
v:0x76
e:0x65
最后:表白还是直接点的好-来自理科男的劝告
说明一下两点:1:\在 c语言要用2个\\来表示,因为\是转义字符
2:数据大小不能超过int,否则溢出就出错了
#include<stdioh>#include<stringh>
int get_num(char c){
switch(c){
case '%': return 0;
case ')': return 1;
case '~': return 2;
case '@': return 3;
case '': return 4;
case '\\':return 5;
case '$': return -1;
}
}
int f(char begin){
char p = NULL;
int n = strlen(begin);
int base = 1;
int ans = 0;
for(p = begin + n - 1; p >= begin; p--){
ans += get_num(p) base;
base = 6;
}
return ans;
}
int main(){
char str[999];
scanf("%s", str);
printf("%d", f(str));
return 0;
}
你先明白2进制吧。
二进制就是逢二进一,比如1在二进制,还是1,但是2就是10
你想想十进制,有没有十?你写出来,它不是十而是10一零,到十就向前进一位。
那回到二进制
1就是1
2就是10
3比二多一,所以在最后一位 加1也就是11
3是11嘛那四呢?四怎么办?加一?不成不能有2出现,应该向后进位那就是20?不对,前面还是有2了,那再向前走100?对4的二进制是100
五六七八分别是101 110 111 1000就不多说了
现在说六十进制,这平常根本遇不到,但是也是同理,一直写到59但是59可不能用这两个符号5和9表示而应该从十开始用a,b,c,d,e之后再用符号#,$,%代替各个数比如59用/这个符号(你随便用)那六十也就不能用一个符号了因为是六十进制,参考二进制和十进制。
应该写10,这就是60!
希望我的回答对你有帮助!
可以参考对于进制的说法,浅层理解就可以!
回答不易望采纳谢谢!
因为六进制的预置零发的状态图是0000-0101共六个状态,而74LS160进位端的触发条件(计数进位)是1001到0000跳变是Q3端的下降沿,显然六进制是不会到达这个状态的,所以要另选进位端,从六进制状态图可以知道在0101到达时,会产生一个使得清零段(CR)清零的信号使得下一个状态为0000,这时在会在Q2端产生一个下降沿我们就可以拿这个下降沿信号做为六进制的进位输出端(如果还不懂就看状态装换图,看每一步的跳变条件,顺便说一下我现在也在学这本书)
可以通过以下步骤接:
1、将74ls390的两个计数器分别用作个位和十位,个位计数器的输入端INA接时钟信号,十位计数器的输入端INA接个位计数器的输出端QD。
2、将个位计数器的输出端QD、QB、QA分别接到一个与非门的三个输入端,与非门的输出端接到个位计数器的清零端CLR。
3、将十位计数器的输出端QD、QB、QA分别接到另一个与非门的三个输入端,与非门的输出端接到十位计数器的清零端CLR。
4、将个位和十位计数器的输出端QD、QC、QB、QA分别接到译码器和显示器。
如:85 210 1000 111111 ---------------转化为十进制分别是多少?
九进制 六进制 四进制 二进制
(85)9
=((09+8)9+5)10
=(89+5)10
=(72+5)10
=(77)10
(210)6
=(((06+2)6+1)6+0)10
=((26+1)6+0)10
=((12+1)6+0)10
=(136+0)10
=(78+0)10
=(78)10
(1000)4
=((((04+1)4+0)4+0)4+0)10
=(((14+0)4+0)4+0)10
=(((4+0)4+0)4+0)10
=((44+0)4+0)10
=((16+0)4+0)10
=(164+0)10
=(64+0)10
=(64)10
(111111)2
=((((((02+1)2+1)2+1)2+1)2+1)2+1)10
=(((((12+1)2+1)2+1)2+1)2+1)10
=(((((2+1)2+1)2+1)2+1)2+1)10
=((((32+1)2+1)2+1)2+1)10
=((((6+1)2+1)2+1)2+1)10
=(((72+1)2+1)2+1)10
=(((14+1)2+1)2+1)10
=((152+1)2+1)10
=((30+1)2+1)10
=(312+1)10
=(62+1)10
=(63)10
n进制每位基数:个位1,高位=低位n
二进制->十进制,11010B=?D
写出二进制每位基数:个位1,高位=低位2,16 8 4 2 1,观察11010B可知,这个数包含1个16、1个8和1个2,加起来是26,因此11010B=26D
写出六进制每位基数,写到比26大的位停止:36 6 1,用这组数从高到低凑出26,或者说26中包含4个6和2个1,对应六进制数为42,因此11010B=26D=(42)6
欢迎分享,转载请注明来源:表白网
评论列表(0条)