C语言中,把一个32位的长整数转化为十六进制字符串,可以采用移位法。这里的移位法是什么,求详细解释
答案:1 悬赏:50 手机版
解决时间 2021-03-09 05:10
- 提问者网友:风月客
- 2021-03-08 18:36
C语言中,把一个32位的长整数转化为十六进制字符串,可以采用移位法。这里的移位法是什么,求详细解释
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-03-08 19:30
整数在内存里面存储的方式是按二进制存放的,比如:
2,是10;
10,是1010;
你对长整型数字进行移位,左移一位,比如10,移位后就是10100,相当于×2;同理,右移一位,就是101,相当于÷2
这道题移位法处理就是判断数字是否等于0,如果不等于,%16保存余数,再右移4位,直到数字为0为止,得到一个倒序的字符串,然后颠倒过来就行。得到倒序字符串的代码示例。
unsigned int a = 0x457AC8F2;
printf("%x\n",a);
while(a !=0 )
{
printf("%x ",a % 16);
a = a >> 4;
}
2,是10;
10,是1010;
你对长整型数字进行移位,左移一位,比如10,移位后就是10100,相当于×2;同理,右移一位,就是101,相当于÷2
这道题移位法处理就是判断数字是否等于0,如果不等于,%16保存余数,再右移4位,直到数字为0为止,得到一个倒序的字符串,然后颠倒过来就行。得到倒序字符串的代码示例。
unsigned int a = 0x457AC8F2;
printf("%x\n",a);
while(a !=0 )
{
printf("%x ",a % 16);
a = a >> 4;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯