**
解釋如下:
題目求的是十六進製制的加法。剛開始想的是把十六進製制轉化為十進位制,進行加法運算後,再轉化為十六進製制。
所以這題可以直接用十六進製制輸入,然後進行十六進製制的運算(其實不管是什麼進製,在計算機中都是以二進位制來計算的,只是按輸入輸出的格式不同,而強制轉化為其它的進製),就像十進位制的加法一樣。
這裡要注意的是輸入小於15位,結果超過了二進位制中的32位而小於64位。所以這裡用__int64的型別。輸入輸入出格式就是(%i64x,%i64x)。由於%i64x,不能輸出負數,所以負數的輸出要做處理。
在這裡 你要明白的是 計算機存入的資料是二進位制 0 1 所以scanf("%d",&a);就是你輸入的乙個十進位制比如 你輸入10(這邊是十進位制數) 他也代表10(十六進製制) 計算機儲存是 10000
scanf("%x",&a);就是你輸入的乙個十六進製制
比如 你輸入10(是這邊是十六進製制數) 他也代表8(十進位制) 計算機儲存是 1000
而在計算b=a/15-273 的時候 計算機是用它們各自表示的二進位制來計算的
因此事實上得到的b存在計算機裡是以二進位制存在的 只是當你輸出時候利用強制轉換輸出才變成我們想要的十進位制或者十六進製制
比如: 在b輸出時候用十六進製制輸出 也就是printf("%x",b);
#include #include int main()
printf("%i64x\n",b);
}return 0;
}
十六進製制的加法HDU2057
題目求的是十六進製制的加法。剛開始想的是把十六進製制轉化為十進位制,進行加法運算後,再轉化為十六進製制。1.其實c中存在十六進製制的輸入輸出 x,x 所以這題可以直接用十六進製制輸入,然後進行十六進製制的運算 其實不管是什麼進製,在計算機中都是以二進位制來計算的,只是按輸入輸出的格式不同,而強制轉化...
hdu 2057 十六進製制的加減
這題可以直接用十六進製制輸入,然後進行十六進製制的運算 其實不管是什麼進製,在計算機中都是以二進位制來計算的,只是按輸入輸出的格式不同,而強制轉化為其它的進製 就像十進位制的加法一樣。這裡要注意的是輸入小於15位,結果超過了二進位制中的32位而小於64位。所以這裡用 int64的型別。輸入輸入出格式...
hdu 4267 十顆線段樹
線段樹 i a k 0 即i k a k 節點維護乙個二維陣列add,add a b c,表示該區間下標i a b的加c 那麼,update l,r,k,l k,v 這樣就可以分到子區間了 但是,這樣會爆記憶體,因為a b include include includeusing namespace...