C中如何直接操作2進位制數

2022-09-12 08:25:15 字數 1202 閱讀 7737

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...