❶ 二進制編程
#include <stdio.h>
void trans(int x)
{
int a[30]; int i=0,rem;
do{
rem=x%2;x=x/2;
a[i]=rem;
i++;
}while(x!=0); while(i>0)
printf("%d",a[--i]);
printf("\n");}
void main()
{
int d;
printf("請輸入一個十進制的正整數:\n");
do scanf("%d",&d);while(d<0);
trans(d);
}
❷ C語言二進制怎麼表示
c++中負數存儲時,不是簡單的將符號位置為1,而是採用補碼的形式存儲的,負數最高位為符號位,也就是1,其餘全部取反,然後再加1。
假如操作系統是32位,-1的二進制存儲不是:1000
0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。
(2)二進制怎麼用編程擴展閱讀:
C語言面向過程,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。
❸ c語言如何讀寫二進制
內容的寫入分兩種,a.字元 b.位元組
前者可以寫一些字元串,後者主要用來內寫入 視頻,音頻那些數據容.
就像你用記事本打開 *.mp3文件一樣會出現亂碼。
而如果你想寫入字元串也出現亂碼,則應該修改寫入時的字元編碼格式。
有Unicode,utf-8,ansi,gbk等等。而windows有自己默認的讀取格式,所以當你寫入的格式與默認格式不相同時就會出現用記事本打開時出現亂碼了。
另一種情況是在寫入字元串之前對字元串進行加密。
如果需要具體的例子,可以M我QQ
❹ vb如何編程二進制文件
1、用open打開二進制文件,用put寫文件,用get讀文件。
2、所需工具:vb6
3、示例:(二進制文件的寫出與讀取)
PrivateSubCommand1_Click()
Open"c:111.txt"ForBinaryAccessWriteAs#1
DimsAsString
Dimn1AsInteger,n2AsLong
Dimf1AsSingle,f2AsDouble
s="12345"
n1=10
n2=50000
f1=0.1
f2=0.0000000001
Put#1,,s
Put#1,,n1
Put#1,,n2
Put#1,,f1
Put#1,,f2
Close#1
Prints,n1,n2,f1,f2
EndSub
PrivateSubCommand2_Click()
Open"c:111.txt"ForBinaryAccessReadAs#1
DimsAsString
Dimn1AsInteger,n2AsLong
Dimf1AsSingle,f2AsDouble
s=String(5,0)
Get#1,,s
Get#1,,n1
Get#1,,n2
Get#1,,f1
Get#1,,f2
Close#1
Prints,n1,n2,f1,f2
EndSub
4、注意:讀取字元串時,提前用string()函數生成要讀取的長度的串,或者使用定長串。
❺ C語言編程之二進制原碼、反碼和補碼
概述
在計算機內,有符號數有3種表示法:原碼、反碼和補碼。
在計算機中,數據是以補碼的形式存儲的,所以補碼在c語言的教學中有比較重要的地位,而講解補碼必須涉及到原碼、反碼。
詳細釋義
所謂原碼就是二進制定點表示法,即最高位為符號位,「0」表示正,「1」表示負,其餘位表示數值的大小。
反碼表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
原碼、反碼和補碼的表示方法
定點整數表示法
定點小數小時法
反碼
正數:正數的反碼與原碼相同。
負數:負數的反碼,符號位為「1」,數值部分按位取反。
例如: 符號位 數值位
[+7]反= 0 0000111 B
[-7]反= 1 1111000 B
注意:
a. 數0的反碼也有兩種形式,即
[+0]反=00000000B
[- 0]反=11111111B
b. 8位二進制反碼的表示範圍:-127~+127
原碼
在數值前直接加一符號位的表示法。
例如: 符號位 數值位
[+7]原= 0 0000111 B
[-7]原= 1 0000111 B
注意:
數0的原碼有兩種形式:
[+0]原= 00000000B
[-0]原= 10000000B
位二進制原碼的表示範圍:-127~+127
補碼
1)模的概念:把一個計量單位稱之為模或模數。
例如,時鍾是以12進制進行計數循環的,即以12為模。在時鍾上,時針加上(正撥)12的整數位或減去(反撥)12的整數位,時針的位置不變。
對於一個模數為12的循環系統來說,加2和減10的效果是一樣的;因此,在以12為模的系統中,凡是減10的運算都可以用加2來代替,這就把減法問題轉化成加法問題了(註:計算機的硬體結構中只有加法器,所以大部分的運算都必須最終轉換為加法)。
10和2對模12而言互為補數。
同理,計算機的運算部件與寄存器都有一定字長的限制(假設字長為8),因此它的運算也是一種模運算。當計數器計滿8位也就是256個數後會產生溢出,又從頭開始計數。產生溢出的量就是計數器的模,顯然,8位二進制數,它的模數為2^8=256。在計算中,兩個互補的數稱為「補碼」。
2)補碼的表示:
正數:正數的補碼和原碼相同。
負數:負數的補碼則是符號位為「1」。並且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。也就是「反碼+1」。
例如: 符號位 數值位
[+7]補= 0 0000111 B
[-7]補= 1 1111001 B
補碼在微型機中是一種重要的編碼形式,請注意:
a. 採用補碼後,可以方便地將減法運算轉化成加法運算,運算過程得到簡化。
正數的補碼即是它所表示的數的真值,而負數的補碼的數值部份卻不是它所表示的數的真值。
採用補碼進行運算,所得結果仍為補碼。
b. 與原碼、反碼不同,數值0的補碼只有一個,即
[0]補=00000000B。
若字長為8位,則補碼所表示的范圍為-128~+127;進行補碼運算時,應注意所得結果不應超過補碼所能表示數的范圍。
原碼、反碼和補碼之間的轉換
由於正數的原碼、補碼、反碼表示方法均相同,不需轉換。
在此,僅以負數情況分析。
(1) 已知原碼,求補碼。
例:已知某數X的原碼為10110100B,試求X的補碼和反碼
解:由[X]原=10110100B知,X為負數。求其反碼時,符號位不變,數值部分按位求反;求其補碼時,再在其反碼的末位加1。
1 0 1 1 0 1 0 0 原碼
1 1 0 0 1 0 1 1 反碼,符號位不變,數值位取反
1 1 0 0 1 1 0 0 補碼,符號位不變,數值位取反+1
故:[X]補=11001100B,[X]反=11001011B。
(2) 已知補碼,求原碼。
分析:按照求負數補碼的逆過程,數值部分應是最低位減1,然後取反。但是對二進制數來說,先減1後取反和先取反後加1得到的結果是一樣的,故仍可採用取反加1 有方法。
例:已知某數X的補碼11101110B,試求其原碼。
解:由[X]補=11101110B知,X為負數。
1 1 1 0 1 1 1 0 補碼
1 1 1 0 1 1 0 1 反碼(符號位不變,數值位取反加1)
1 0 0 1 0 0 1 0 原碼(符號位不變,數值位取反)
關於補碼的補充例子:
一個正的整數的補碼就是這個整數變成二進制的值。
舉例:一個int型變數i=10,其二進制補碼就是0000 0000 0000 0000 0000 0000 0000 1010(0x0000000A)
2. 一個負整數的二進制補碼,就是該負數的絕對值所對應的補碼全部取反後加1.
舉例:int i=-10的補碼如何求得:
先求-10的絕對值10的補碼是0000 0000 0000 0000 0000 0000 0000 1010(0x0000000A);
再將求得的補碼取反: 1111 1111 1111 1111 1111 1111 1111 0101
再將取反後得到的補碼加1: 1111 1111 1111 1111 1111 1111 1111 0101 + 1
即可得到-10的二進制補碼: 1111 1111 1111 1111 1111 1111 1111 0110(0xFFFFFFF6)
3. +0和-0的二進制補碼都是0
首先+0的二進制補碼是0;
-0的二進制補碼是+0的二進制補碼取反後加1,+0的二進制補碼為0,取反後為FFFFFFFF,加1後還是0
原碼和反碼在數值0都有二意,唯有補碼在數值0是唯一的碼值!
❻ 二進制如何編程
我曾經用2進制編寫過代碼,不過不是純的2進制,而是首先算出2進制代碼,然後將其轉化成16進制.
編程環境不需要,因為編程環境的功能就是把你的某種語言代碼轉化成相應的2進制. 既然你直接寫2進制代碼還需要什麼編程環境.
你需要的應該是一個燒寫工具將你的代碼直接寫到內存中(ram ,rom啊什麼的)相應地址,指示cpu跳轉到這個地址就好了.
能否直接執行2進制命令,這問題就太外行了,你可以隨便找個計算機專業人問問,不能簡單回答能不能.
❼ 二進制數字在計算機編程中怎麼使用
現在的計算機編程都是以盡可能接近人類語言的語法與數制,很少出現需要使用二進制數的情況,偶爾用到的比如用作某個對象的狀態標志位(可以進行按位與、或、非運算)、匯編中使用的標志寄存器中的標志位(用於標示計算結果數的狀態)。
雖說計算機電路中的邏輯其實是二進制,但在匯編層面已經由機器碼(也就是二進制所表示的指令等)與簡單的文字指令的對照表所規避解決這個問題了,因為記這些繁瑣的數字實在困難。
❽ 二進制如何編程
1、打開易語言新建一個windows程序進入下圖界面。