1樓:
嚴格的說,應該是小於0.5設為0,大於或等於0.5設為1
如果你想要長度為64bit的2進位制數,系統提供的隨機函式可能都不能直接滿足你的要求。
可以考慮生成幾個隨機整數,然後拼接起來,得到一個滿足你的要求的(線性)隨機數。一般32位機上rand_max為0x7fffffff,長度為31bit,如果你希望想要64bit的隨機數,則可以參考下面的這個辦法:
rand64.h
/** written by summertown at 2010.05.01
* get a 64bit long random num
* file: rand64.h
*/#ifndef _rand64_h
#define _rand64_h
#include
uint64_t rand64(void);
void srand64(unsigned seed);
#endif
rand64.c
/** written by summertown at 2010.05.01
* get a 64bit long random num
* file: rand64.c
*/#include
#include "rand64.h"
uint64_t rand64()
void srand64(unsigned seed)
使用時:
main.c
#include
#include
#include
#include "rand64.h"
int main()
二進位制數是計算機內部數字的表示方法,像上面的例子,可以直接生成64bit的隨機數,當然是二進位制的,只是二進位制不便於閱讀,所以一般都是以10進位制或16進位制或8進位制的形式顯示出來。如果想把這個數儲存成char放到檔案或者是char陣列裡,則可以用sprintf函式實現轉換。這裡以16進製為例:
char str[16+1] = ;
sprintf(str, "%016llx", rand64());
不知道上面的是不是你想要的……
2樓:匿名使用者
就用rand就可以了。 0到rand_max之間的整數
我怎麼看不出來你這裡還有什麼「讀取」的問題? 你把什麼二進位制數記在檔案裡了?
用C如何把字串轉化為二進位制數
字串data到int很簡單,就一句話。int到二進位制數,就要算了。十幾二十句吧 字串到整型 include include int main include void outc char c printf void main c語言,如何把輸入的一個字串,轉換為相應的二進位制數?20 includ...
如何用c從一組數中隨機抽取數字,C 中如何從陣列中獲取一個隨機數
int array 按照樓主所說的3個數dictionaryextract new dictionary 記錄每個數抽 取的次數 for int i 0 i array.length i random ran new random listlist new list 裝載抽取出來的數for int ...
c求兩個陣列對應數相加的和,c 中如何實現陣列相加
假如現在有兩個int型別的陣列,int a和int b 那麼我們在定義一個int c 我們要判斷這兩個陣列那個更長,否則會出錯的,int maxlength a.length b.length a.length b.length 這裡用到了三元運算子?不會的自己去看看 for int i 1 i m...