python是腳本語言,先不說性能,要運行在硬體上,得是二進制吧。
② 用python怎麼求任意正整數二進制形式最後連續個數
1、使用python的運演算法。
2、x和1進行「按位與運算」,因為1隻有最後一位是1,其他位都是0。
3、x&1的時候,只要x的最後一位是1,結果都會是1,因為x前面的位和0進行與運算結果一定是0。
4、然後再把x向右移一位,去掉最後一個位的數字,再重復上述計算,統計1的個數即可。
③ 5.按要求寫出Python 表達式。(1)將整數k 轉換成實數。(2)求實數x 的小數部分
(1)float(k)
(2)x-int(x)
num=float("請輸入實數:")
intpart=int(num)
decimalpart=num-intpart
print "實數%f 整數部分:%d 小數部分:%f"%(num,intpart,decimalpart
(3)K進制下一個數python擴展閱讀:
Python的表達式寫法與C/C++類似。只是在某些寫法有所差別。
主要的算術運算符與C/C++類似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負、乘法、除法、整除、乘方、取補、取余。>>, <<表示右移和左移。
&, |, ^表示二進制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用於比較兩個表達式的值,分別表示大於、小於、等於、不等於、小於等於、大於等於。在這些運算符裡面,~, |, ^, &, <<, >>必須應用於整數。
④ python提供了三種基本的數字類型
整數、浮點數
⑤ python中怎麼表示輸入一個數k,然後再輸入k行數
描述
從輸入任意個整型數,統計其中的負數個數並求所有非負數的平均值,結果保留一位小數,如果沒有非負數,則平均值為0
本題有多組輸入數據,輸入到文件末尾,請使用while(cin>>)讀入
數據范圍小於1e6
輸入描述:
輸入任意個整數,每行輸入一個。
輸出描述:
輸出負數個數以及所有非負數的平均值
示例
⑥ 怎麼用Python做一個十進制轉二進制
題主你好,
先說下原理: 利用python內置的函數bin()即可.
代碼截圖:
=====
希望可以幫到題主, 歡迎追問.
⑦ python中的進制轉換和原碼,反碼,補碼
python中的進制轉換和原碼,反碼,補碼
計算機文件大小單位
b = bit 位(比特)
B = Byte 位元組
1Byte = 8 bit #一個位元組等於8位 可以簡寫成 1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
進制分類
二進制:由2個數字組成,有0 和 1 python中標志:0b
八進制:由8個數字組成,有0,1,2,3,4,5,6,7 python中標志:0o
十進制:有10個數字組成,有0,1,2,3,4,5,6,7,8,9 python中標志:無
十六進制:有16個數字組成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(進制字母大小寫都可以,分別代表10,11,12,13,14,15) python中標志:0x
python中的進制轉換:
其他進制轉換為十進制:int(相應進制)
其他進制轉換為二進制:bin(相應進制)
其他進制轉換為八進制:oct(相應進制)
其他進制轉換為十六進制:hex(相應進制)
二進制 轉化成 十進制:
例: 0b10100101
運算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165
八進制 轉化成 十進制:
例: 0o127
運算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87
十六進制 轉化成 十進制:
例: 0xff
運算:15*16^0 + 15*16^1 = 255
十進制 轉化成 二進制:
426 => 0b110101010
運算過程: 用426除以2,得出的結果再去不停地除以2,
直到除完最後的結果小於2停止,
在把每個階段求得的余數從下到上依次拼接完畢即可
十進制 轉化成 八進制:
426 => 0o652
運算過程: 用426除以8,得出的結果再去不停地除以8,
直到除完最後的結果小於8停止,
在把每個階段求得的余數從下到上依次拼接完畢即可
十進制 轉化成 十六進制:
運算過程: 用426除以16,得出的結果再去不停地除以16,
直到除完最後的結果小於16停止,
在把每個階段求得的余數從下到上依次拼接完畢即可。
相關推薦:《Python視頻教程》
原碼,反碼,補碼
實際人們看到的數字是原碼轉化之後顯示出來的。
而原碼是通過補碼得到的。
計算機的所有數據在底層都是以二進制的補碼形式存儲。
***進制轉換的時候需要先把內存存儲的補碼拿出來變成原碼在進行轉換輸出***
反碼:二進制碼0變1,1變0叫做反碼,反碼用於原碼補碼之間的轉換。
補碼:用來做數據的存儲運算,可以實現計算機底層的減法操作,因而提出(可以表達出一個數的正負)。
也就是說默認計算機只會做加法,例:5+(-3) => 5 - 3。
乘法除法是通過左移和右移 << >> 來實現。
正數高位補0,負數高位補1。
正數:
原碼 = 反碼 = 補碼
負數:
反碼 = 原碼取反(除高位)
補碼 = 反碼加1
反碼 = 補碼減1
原碼 = 反碼取反(除高位)
我們會發現,在取反前減1和在取反後加1的效果是一樣的,這就和-2-1 = -(2+1)一個道理,所以會得出這樣的規律:
原碼 = 補碼取反加1
補碼 = 原碼取反加1
一個數在計算機中的二進製表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號, 叫符號位正數為0, 負數為1。
比如
正數1在計算機中的存儲即為
0 00000000000000000000001
負數1 在計算機中的存儲即為
1 00000000000000000000001
一個正數,轉換為二進制位就是這個正數的原碼。負數的絕對值轉換成二進制位然後在高位補1就是這個負數的原碼。
正數的反碼就是原碼,負數的反碼等於原碼除符號位以外所有的位取反。
正數的補碼與原碼相同,負數的補碼為 其原碼除符號位外所有位取反(得到反碼了),然後最低位加1。
所以原碼,反碼,補碼正數情況下是一致的,負數情況下是不一致的。
計算機的運算過程實際就是補碼相加的一個過程。
比如-2 + 3
-2 的原碼為
1 000000000000000000000000010
反碼為:
1 111111111111111111111111101
補碼為:
1 111111111111111111111111110
3的原碼為
0 000000000000000000000000011
反碼為:
0 000000000000000000000000011
補碼為:
0 000000000000000000000000011
那麼二者補碼相加結果為
1 111111111111111111111111110
+
0 000000000000000000000000011
=
10 000000000000000000000000001(計算機存儲為32位,故前面溢出的1被舍棄,高位為0)
0 000000000000000000000000001
結果為1
再比如-2 + 1
-2 的原碼為
1 000000000000000000000000010
反碼為:
1 111111111111111111111111101
補碼為:
1 111111111111111111111111110
1的原碼為
0 000000000000000000000000001
1的反碼為:
0 000000000000000000000000001
1的補碼為:
0 000000000000000000000000001
二者的補碼相加結果為
1 111111111111111111111111110
+
0 000000000000000000000000001
=
1 111111111111111111111111111
得出的補碼轉化為原碼, 最低位減一得到反碼,然後除符號位外所有位取反,得到結果
1 000000000000000000000000001
結果為1