日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言怎么减去一个16进制数,一个简单的有关问题:像这样的16进制数怎么转换得到...

發布時間:2024/4/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言怎么减去一个16进制数,一个简单的有关问题:像这样的16进制数怎么转换得到... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個簡單的問題:像這樣的16進制數如何轉換得到?

本帖最后由 alibaren 于 2014-11-25 01:15:15 編輯

下列3個整數(用16進制表示)?如何通過某種運算一次性得到右邊的數:

0X1212BE72???====>0X212BE72*10

0X2312BE8D???====>0X312BE8D*100

0X3511DDEC??====>0X511DDEC*1000

.................????????????????????????????....................

也就是前面的一個數字N去掉,剩下的組成一個新數乘以10的N次方。

另:求出的數值會變很大?為了防止溢出請問用什么數據類型存儲呢

------解決思路----------------------

移位啊

#include?

unsigned?int

conv(unsigned?int?x)

{

unsigned?int?i,?a,?m,?n;

a?=?x?&?0x0FFFFFFF;

n?=?x?>>?28;

m?=?1;

for?(i?=?0;?i?

{

m?=?m?*?10;

}

printf("0X%08X===>0X%08X*%u\n",?x,?a,?m);

return?(a?*?m);

}

int

main(int?argc,?char?*argv[])

{

unsigned?int?x;

x?=?0X1212BE72;

conv(x);

x?=?0X2312BE8D;

conv(x);

x?=?0X3511DDEC;;

conv(x);

return?0;

}

------解決思路----------------------

unsigned?int?a?=?0X1212BE72;

unsigned?int?b?=?(?a?&?0xF0000000?)?>>?7;

int?c?[100];

memset(?c,?0,?sizeof(c)?);

int?i?=?b;

unsigned?int?d?=?a?&?0x0FFFFFFF;

while(?d%10?>?0?)

{

c[b]?=?d%10;

d?=?d/10;

b++;

}

for(?int?i=b-1;?i>0;?i--?)

printf(?"%d",?c[i]?);

------解決思路----------------------

__int64

總結

以上是生活随笔為你收集整理的c语言怎么减去一个16进制数,一个简单的有关问题:像这样的16进制数怎么转换得到...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。