def sto2(d):
if d == 0:
return '0' #处理输入的是0的情况游启首
sign = ''
if d <0:
d = -d
sign = '-'#转换输入的是负数的情况
旁姿 b = ''
while d != 0:
b = str(d % 2) + b
d = d // 2
return sign + b
d = int(input('要转换的十进制数是:'))
print('对应的二进制结果为'+sto2(d))
执行测试一下神数:
要转换的十进制数是:28
对应的二进制结果为11100
要转换的十进制数是:-66
对应的二进制结果为-1000010
_______________END______________
1、将十进制转换成二进制,利用bin()方法。
2、获取亏迹二进制数据的长度袭铅。
3、to_bytes(),byteorder为little>>>(2048).to_bytes(2,byteorder='little')b'\x00\x08'。
4、使用to_bytes()方法,byteorder为big。
5、添加signed=True属性>>>(-10240).to_bytes(10,byteorder='拍空好little',signed=True)。
6、利用bit_length()方法>>>A3=45125656>>>A3.to_bytes((A3.bit_length()+7) // 8,byteorder='big')。就完成了。
给个10进制转2进制的。。你可以在根答旅据2进制转为8进制和16进制。4位丛贺2进制是1位16进制,3位2进制是1位8进制#include<iostream.h>int a[100]//记录2进制数据 int Icount//记录2进制整数个数 int Dcount//记录2进制小数个数void ITen_Two(int ten)//整数转换 { int i=0 while(ten>1) { a[i]=ten%2 ten=ten/2//不用管奇偶 i++ Icount++ } if(ten<=1) { a[i]=1 Icount++ } }void DTen_Two(float d)//小数转换 { int i=Icount Dcount=0 a[i]=0 while(d!=0 &&i<100) { d=d*2 if(d>=1) {a[i]=1 d=d-1 } elsea[i]=0 i++ Dcount++ } }void Out() { cout<<"2进制数为:" for(int i=Icount-1i>=0i--) cout<<a[i] cout<渗举派<"." for(int j=Icountj<Icount+Dcountj++) cout<<a[j] cout<<endl}void main() { float x int B=1//结束标志 while(B==1) { int I//整数部分 float D//小数部分 Icount=0 Dcount=0 cout<<"请输入一个10进制浮点数:" cin>>x I=(int)x D=x-I if(I>0 &&D>0) {ITen_Two(I) DTen_Two(D) } else if(I==0 &&D>0)DTen_Two(D) else if(I>0 &&D==0)ITen_Two(I) elsecout<<"0" if(I>0 || D>0)Out(欢迎分享,转载请注明来源:内存溢出
评论列表(0条)