c#中,byte的取值範圍是0~255(如下)
現在有乙個值為10725的int型整數需要轉化為byte,顯然,這超出了byte型別的範圍。這時候我們可以將這個大的int「拆解」成兩個部分——將大int轉換成二進位制格式,然後每8位一段,再分別將這些段轉化成byte型別。
int sample_interval=
10725
;//將整數轉為二進位制數
string binary_string = convert.
tostring
(sample_interval,2)
;//取二進位制串的低8位
string low_string = binary_string.
substring(0
,8);
//取二進位制串的剩餘位(因為我是想要把資料分成兩個byte,所以除去低8位,剩下的部分我放到了一段)
string high_string = binary_string.
substring(8
, binary_string.length -8)
;//將低位二進位制轉化為short型(此處是為了資料需要而用short型)
short low_short = convert.
toint16
(low_string,2)
;short high_short = convert.
toint16
(high_string,2)
;//將低位的short型轉成byte,並以乙個byte大小寫入檔案
fs.writebyte((
byte
)(low_short));
fs.writebyte((
byte
)(high_short)
);
c語言int型和char型的自動型別轉換
char a 1 機器碼為0xff unsigned char b 254 機器碼0xfe if a b else 上述 輸出結果 a b 賦值用機器碼寫入記憶體 雖然我們以十進位制為兩個變數賦值,但是變數值在記憶體中是以二進位制機器碼的形式存在。如果十進位制數是負數,它就以補碼的形式存放在記憶體中...
C 中int型向無符號型別的轉換
在日常生活中,我們知道,加上乙個負數,等於減去這個負數的絕對值。那麼在c 裡,是否和我們平時的認知是一樣的呢?看一段小 int i 42 unsigned j 10 std cout這個 的輸出結果是什麼呢?和平時的答案不太一樣吧。下面就來 一下原因。因為在機器中,所有的data都是由二進位制數來儲...
如何將整數轉換為相應的字串
手寫的,沒有經過優化。將整數轉換為相應的字串。注意int64的最大值,以免溢位。char itoa my int64 value,char buffer,size t size assert buffer null assert size 1 size t len 0 int64 tempvalue...