Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24

Преобразовать string[4] в integer

28.01.2016, 23:35. Показов 1630. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. В общем задача такая: есть строка длины 4 байта(ровно как и тип integer), и есть переменная типа integer, которой программа должна присвоить эти 4 байта строки. Думал сделать это через указатели но выдает ошибку, как можно реализовать такую задачку?


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type
  pstring = ^string[3];
  pinteger = ^integer;
 
var
  s1: pstring;
  i1: pinteger;
  s: string[3];
  pi: pointer;
 
 
begin
  s := '1111';
  s1 := @s;
  pi := s1;
  i1 := pstring(pi);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2016, 23:35
Ответы с готовыми решениями:

Преобразовать тип String в Integer
Подскажите плиз как преобразовать тип String в Integer?

Нельзя преобразовать тип string к integer
В выделенной 39-й строке выдает ошибку "Нельзя преобразовать тип string к integer". Помогите пожалуйста, что не так? Код: program SS; ...

Нельзя преобразовать тип integer к string
var game: record const v_main: integer = 1; const v_sub: integer = 0; const v_create: integer = 0; const name:...

7
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
29.01.2016, 00:10
Цитата Сообщение от MyNameIsIgor Посмотреть сообщение
s: string[3];
Это 4 байта? Если это попытка использовать внутреннее представление типа string[3] для доступа к s[0], то это неудачная мысль - внутреннее представление может меняться.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program Test;
 
type
  T  = ^TT;
  TT = array[1..4] of byte;
var
  s: string[4];
  i: dword;
 
begin
  i := 0;
  s := #12#34#56#78;
  i := dword(T(@s[1])^);
  writeln(s);
  writeln(i);
  writeln(TT(i)[1],TT(i)[2],TT(i)[3],TT(i)[4]);
end.
1
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
29.01.2016, 11:09  [ТС]
немного переделал Ваш код тк PascalABC.NET и PaccalABC не знают типв dword, но выдает ошибку. И я не совсем понял что значит строка s := #12#34#56#78;


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program Test;
 
type
  T  = ^TT;
  TT = array[1..4] of byte;
var
  s: string[4];
  i: integer;
 
begin
  i := 0;
  s := #12#34#56#78;
  i := integer(T(@s[1])^);                           //Program2.pas(13) : Нельзя получить адрес выражения
  writeln(s);
  writeln(i);
  writeln(TT(i)[1],TT(i)[2],TT(i)[3],TT(i)[4]);  //Program2.pas(16) : Невозможно явно преобразовать тип integer к типу array [1..4] of byte
end.
Добавлено через 1 минуту
В принципе можно создать безтиповый файл записать туда строку и потом считать ее в integer. А както по другому возможно?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
29.01.2016, 11:21
Pascal
1
2
3
4
5
6
7
8
9
10
begin
  var S : String[4] := '1234';
  
  var N := StrToInt(S);
  WriteLn(N);
  
  var U : Integer;
  if TryStrToInt(S, U) then
    WriteLn(U);
end.
Добавлено через 2 минуты
Ну и ещё есть процедура val…
А их реализации можно посмотреть в модуле PABCSystem.pas
К примеру, вот так выглядит реализация val :
Pascal
1
2
3
4
5
6
procedure Val(s: string; var value: integer; var err: integer);
begin
  if TryStrToInt(s, value) then
    err := 0
  else err := 1;  
end;
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
29.01.2016, 11:22  [ТС]
имеется в виду что строка может состоять из любых символов, например s:='abcd'
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
29.01.2016, 11:26
MyNameIsIgor, а что за число тогда результат?

Добавлено через 2 минуты
Pascal
1
2
3
4
5
6
7
8
begin
  var S : String[4] := 'abcd';
  var N := 0;
  foreach C : Char in S do
    N := N shl 4 + Ord(C);
  
  WriteLn(N);
end.
1
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
29.01.2016, 13:34  [ТС]
Вроде работает)). Мне это нужно для xor шифрования(строка это ключ). Всем спасибо за ответы

Добавлено через 1 час 58 минут
Поспешил с выводом) не совсем то что нужно. я наверно не правильно сформулировал чего хочу. Есть строка из 4 символов которая занимает в оперативной памяти 4 байта, например так: 0011 1010 0010 0010 1001 0100 1001 0001,
но Это также и есть некое значение типа Integer. которое мне и нужно получить. Лан щас в инете еще поискать попробую
0
22 / 22 / 34
Регистрация: 29.04.2014
Сообщений: 145
30.01.2016, 14:47
MyNameIsIgor,
Pascal
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
Function BinToDec(s: String): System.Int32;
Var
  tmp: System.Int32 = 1 shl (s.Length - 1);
Begin
  Foreach c: Char in s do
    Begin
      If c = '1' then Inc(Result, tmp);
      tmp := tmp shr 1;
    End;
End;
 
Const
  s = '1011';
 
Var
  value: System.Int32;
  
Begin
  // Если твоя строка в десятичной системе счисления:
  value := s.ToInteger;
  Writeln(value);
  // Если твоя строка в двоичной системе счисления:
  value := BinToDec(s);
  Writeln(value);
End.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2016, 14:47
Помогаю со студенческими работами здесь

Нельзя преобразовать тип function(z: integer;w: integer;e: integer): real к real
program pract18; uses crt; var x,a,i,k:integer; y:real; function prm1 (z,w,e:integer):real; begin for e:=1 to 20 do ...

Ошибка : Нельзя преобразовать тип array [1..8] of integer к integer
Дана целочисленная матрица В размером 5х8. Получить массив С из 0 и 1, в котором Ci=1, если в i –ой строке матрицы есть хотя бы один...

Нельзя преобразовать тип array [1.10] of integer к integer
Не робит код в этом месте( uses GraphABC; ... var v: array of Picture; x2,y2: array of integer; ky: integer; ...

Невозможно преобразовать тип function от integer к integer
Выдает ошибку.В строке 17 невозможно преобразовать тип function от integer к integer. Как исправить? var x1,x2,y1,y2,P,S:integer; ...

Нельзя преобразовать тип integer к array [1.8] of integer
Естественное слияние.pas(116) : Нельзя преобразовать тип integer к array of integer program cal; uses Crt; type Matrix =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru