我在這樣的數組中有很多變量:short num = 7123;
。該值總是4位數字。如何去把這個變成a = 7; b = 123;
?從短整數開始拼接第一個和最後3個數字?
所有我能想到的是轉換爲C字符串和剝離它,但似乎並不高效。
我在這樣的數組中有很多變量:short num = 7123;
。該值總是4位數字。如何去把這個變成a = 7; b = 123;
?從短整數開始拼接第一個和最後3個數字?
所有我能想到的是轉換爲C字符串和剝離它,但似乎並不高效。
b = num % 1000;
a = num/1000;
short a = num/1000;
short b = num % 1000;
,因爲它是那麼簡單:
a = num/1000;
b = num % 1000;
// cast to integer should drop the decimal
a = (int) (num/1000);
// use variable a to subtract the thousand place to zero
b = a - num;
C標準庫包含div()
它可以在一個操作中做到這一點:
div_t r = div(num, 1000);
a = r.quot;
b = r.rem;
C標準庫可以預期有一個優化的實現div()
,它將在一個機器指令中(在具有這種指令的CPU上)執行除法和餘數。
2tru 2tru 2tru 2tru – user1139252
或b = num -a * 1000如果你想保存一個分割點... – mcmcc
@mcmcc如果我們要進行微觀優化,我們應該添加24,然後右移10位,避免分割和共模...(這是安全的,因爲短整型可以容納超過4個位數,所以沒有溢出的機會) – bdares