Форум программистов, компьютерный форум CyberForum.ru

64-битовая строка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объясните, как подсчитать количество дробных чисел в выборке? http://www.cyberforum.ru/cpp-beginners/thread971502.html
Понимаю, что нужно делать через if и else, но мой начальный уровень помогает только запутаться
C++ Матрица. Диагонали в прямоугольнике Задание дано так: Дана матрица с размерами A Максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Есть идея разделить всю матрицу на три части,на три типа диагоналей. 1. Увеличивающийся. Например: summa1 = abs( A ); summa2 = abs( A ) + abs( A ); summa3 = abs( A ) + abs( A ) + abs( A) ; summa4 = abs( A ) + abs( A ) + abs( A) + abs( A; http://www.cyberforum.ru/cpp-beginners/thread971497.html
C++ помогите перевести программу с паскаля на С++
Ребят , помогите перевести программу с паскаля на С++ , или подскажите как написать нечто подобное. Заранее благодарен. Вот задание : №1. Дано натуральное число N. Определить, является ли оно автоаморфным. Автоаморфное число N равно последним разрядам квадрата этого числа. А вот код паскаля :
C++ Сформировать массив С, каждый элемент которого равен максимальному значению соответствующих элементов массивов А и В
1) Даны два массива А и В одинаковой размерности. Сформировать массив С, каждый элемент которого равен максимальному значению соответствующих элементов массивов А и В.
C++ вывести на экран информацию о стоимости аренды http://www.cyberforum.ru/cpp-beginners/thread971472.html
В моей задаче ( Бассейн предоставляет сдает в аренду 4 плавательных дорожки пятницам с 16.00 до 20.00 на почасовой основе. Цена аренды 60 грн. / Час. Известна информация о состоянии каждой из дорожек ежечасно (арендуемая свободна). Пользователь вводит следующую информацию: начало, продолжительность аренды (количество часов), номер дорожки. Нужно вывести на экран информацию о стоимости аренды)...
C++ Нужно немного разобраться в бинарном поиске ,в С++ Здравствуйте. Вообщем , есть код, нашёл такой пример: int start,end,m; start=0; //начало end=n; //конец bool a=false; while(start<=end) { m=(start+end)/2; //середина if(key<m) end=m-1; подробнее

Показать сообщение отдельно
HeyHey
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 3

64-битовая строка - C++

07.10.2013, 19:47. Просмотров 893. Ответов 3
Метки (Все метки)

Необходимо реализовать структуру 64-битовой строки состоящей из двух unsigned long полей, с последующей возможностью использования битовых операций(NOT, AND, OR, XOR).

Есть кое-какой код, но он просто ужасен и функция Bin(перевод в двоичную) работает не совсем верно, а именно нет возможности перевода числа более 4294967295(максимум unsigned long'а)

Заранее спасибо.

Сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <conio.h>
 
using namespace std;
 
union Str //объединение 2 полей
    {
    struct Str64
        {
            unsigned long bytes1:32;//2 поля ulong
            unsigned long bytes2:32;
        }hh;
    char byte[65]; 
    }chlst;
 
void Bin(unsigned long c, unsigned long d, char *bin)
{
        for (int i=0; i<32; i++){
        bin[i]=c>>(sizeof(c)*32-1-i)&1?'1':'0';
        bin[32]=0;}
        for (int j=32; j<64; j++){
        bin[j]=d>>(sizeof(d)*32-1-j)&1?'1':'0';
        bin[64]=0;}
}
 
void main()
{
    system("CLS");
    unsigned long c;
    setlocale(LC_ALL,"Russian");
    Str s;
            printf("Введите десятичное число:\n> ");
            while((scanf("%d", &c) != 1))
        {
            fflush(stdin);
            printf("Некорректный ввод\n");
        }   
            if(c<=4294967295)
                chlst.hh.bytes2=c;
            else
                {
                    //...?
                }
    Bin(chlst.hh.bytes1, chlst.hh.bytes2, s.byte);
    printf("Число в двоичной СС: \n%s\n", s.byte);
    getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru