2014-12-02 76 views
2

我正在尋找一種方式來劃時代的時間在轉換到decimalhexadecimalLoadRunner的出現時間十六進制

(例如:decimal = 1417502160098hexadecimal = 14a09b674e2)。

Loadrunner腳本正在使用十六進制值來獲取最新映像。

我發現這很困難,因爲在c中沒有標識符來加權13位數的十進制值。

請讓我知道是否有人在Loadrunner中試過這個。

+0

你需要在字符串此值?內部表示顯然是二元的。對於這個尺寸的數字,我希望你使用「長」。 – 2014-12-02 11:49:52

+0

@Jonathan long數據類型在loadrunner中最多有32位,這個時間戳跨越32位,所以我需要字符數組的值,但我們如何將它轉換爲十六進制的LoadRunner/ – 2014-12-02 11:54:10

+0

道歉,我的意思是一個long長',所以你有64位。 [展開](http://stackoverflow.com/users/28169/unwind)的答案顯示瞭如何轉換爲字符串。但是請注意,對於64位整數,您只需要最多16個字符+ 1個字符的'\ 0'。 – 2014-12-02 12:12:56

回答

1

有一個在C.一個64位的整數類型它叫的int64_t並可以這樣使用:

#include <stdio.h> 
#include <inttypes.h> 

int main(void) 
{ 
    int64_t epoch = 1417502160098LL; 

    printf("%" PRIx64 "\n", epoch); 

    return 0; 
} 
1

我並不清楚你的意思是「在C中沒有標識加權13位數的十進制值「。

不過,如果你想這樣做的C代碼,您通常會使用snprintf()函數變量的值轉換爲十六進制數字的字符串:

#include <stdio.h> 
#include <inttypes.h> 

const uint64_t value = 1417502160098UL; 
char hexbuf[32]; 

snprintf(hexbuf, sizeof hexbuf, "%" PRIx64, value); 

UPDATE:如果你不」無法訪問uint64_t,弄清楚編譯器的unsigned long long類型是否足夠大,通常是64位,這就是你所需要的。如果失敗了,你可能需要推出自己的高精度整數,因爲你只需要例如一對32位數字不應該太難。

+0

感謝您提供的信息,但是inttypes.h從1999年開始被C包括在C99中,但Loadrunner使用基本的C,所以上面的代碼對我來說並不好。 – 2014-12-03 07:10:04

1

如上所述,您需要C代碼來執行此操作。儘管您需要一組兼容32位和64位的代碼,因此在這種情況下使用64位整數類型不太可能有用。

從一個數字庫到另一個數值庫的轉換對於大學一年級的編程學生來說是一個相當常見的練習,因此您可以在任何數量的教科書中找到一個例程。我還包括一個鏈接到一個樣品(未經測試/未確認)

http://www.programiz.com/c-programming/examples/hexadecimal-decimal-convert

相關問題