每個非負整數 n 都有其二進位制表示。例如, 5 可以被表示為二進位制 "101",11 可以用二進位制 "1011" 表示,依此類推。注意,除 n = 0 外,任何二進位制表示中都不含前導零。
二進位制的補碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 "101" 的二進位制補碼為 "010"。
給定十進位制數 n,返回其二進位制表示的補碼所對應的十進位制整數。
我開始的解法python,當資料大的時候,就報超出記憶體了。
class solution(object):
def bitwisecomplement(self, n):
""":type n: int
:rtype: int
"""li=
if n==0:
return 1
else:
for i in range(0,n):
if n==0:
break
if n%2==1:
else:
n=n//2
summ=0
for i in range(0,len(li)):
if li[i]==0:
li[i]=1;
else:
li[i]=0
li1=
for i in range(0,len(li)):
#summ=li[i]*(2**(i))+summ
return sum(li1)
參考別人的。【
class solution ,l=0;
int two=1,sum=0;
if(n==0)return 1;
while(n>0)
for(int i=0;i大數耗時也僅在4ms左右,我的幾十ms,於是參考此改進
取反操作。(注意python的~不是取反)
最終36 ms通過
class solution(object):
def bitwisecomplement(self, n):
""":type n: int
:rtype: int
"""li=
if n==0:
return 1
else:
while n>0:
n=n//2
summ=0
for i in range(0,len(li)):
summ=li[i]*(2**(i))+summ
return summ
注意python語法
//是向下除法
/是真正除法,可能有小數點
%取餘,3%5,3和5必須是整數
Leetcode 1012 十進位制整數的反碼
題目 每個非負整數 n 都有其二進位制表示。例如,5 可以被表示為二進位制 101 11 可以用二進位制 1011 表示,依此類推。注意,除 n 0 外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 101 的二進位制反碼為 010...
十進位制 十六進製制
把十進位制整數轉換為十六進製制,格式為0x開頭,10 15由大寫字母a f表示。input 每行乙個整數x,0 x 2 31。output 每行輸出對應的八位十六進製制整數,包括前導0。sample input 0 1023 sample output 0x00000000 0x000003ff 水...
彙編實驗 十六進製制轉成十進位制以及十進位制轉十六進製制
十六進製制轉成十進位制 datas segment dbuf dw 3039h 16進製制數3039h為10進製數12345 dval db 5 dup 存放轉換後的資料 dlen dbuf datas ends stacks segment 此處輸入堆疊段 stacks ends codes se...