需要帮助才能将整数转换为二进制

时间:2017-09-01 19:47:00

标签: c++ binary integer

我是C ++的新手,我需要制作一个可以将十进制数转换为二进制数的程序。这是我到目前为止所得到的,但它只显示0000 0000 0000 0000(空间是预定的)

#include <stdio.h>
#include <iostream>
#include <windows.h>
#include <math.h>
float EntierAConvertir;

int main()
{
printf("Entrez l'entier à convertir\n");
scanf("%lf", &EntierAConvertir);
    for(long double i = 16; i != 0; i-- )
    {
        if (EntierAConvertir > (pow(2,i-1)))
        {
        printf("1");

        }
        else if (EntierAConvertir < (pow(2,i-1)))
        {
        printf("0");

        }
        if (i == 13 | i==9 | i == 5)
        {
        printf(" ");
        }

    }


system("pause");
return 0;
}

非常感谢帮助! :)

1 个答案:

答案 0 :(得分:1)

在C ++中,你可以用更少的代码正确地完成它。标准库已经提供了您需要的功能。所以没有必要自己手动尝试:

import re
from datetime import datetime
import pytz

d = {}
converted_times = []
local = pytz.timezone("Etc/GMT+4")
dtlist = (["txup", "\s?tx\scycle.{0,4}\s?up:\s?(\d{1,2}:\d{2}:\d{2})"],
          ["txdown", "\s?tx\scycle.{0,4}\s?down:\s?(\d{1,2}:\d{2}:\d{2})"])

entries = ['tx cycle.. up:01:22:53 tx cycle.. down:21:03:11', 
         'tx cycle.. up:12:43:31 tx cycle.. down:19:13:00']

for entry in entries:
    for i in range(len(dtlist)):
        local_time = datetime.strptime(re.search(dtlist[i][1], entry).group(1), 
'%H:%M:%S') #first problem arises here
        localized_time = local.localize(local_time)
        utc_time = localized_time.astimezone(pytz.utc)
        converted_times.append(utc_time)

uttime = map(str, converted_times)
d['uttime'] = uttime

请参阅demo