/
Forside
/
Teknologi
/
Udvikling
/
C/C++
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
C/C++
#
Navn
Point
1
BertelBra..
2425
2
pmbruun
695
3
Master_of..
501
4
jdjespers..
500
5
kyllekylle
500
6
Bech_bb
500
7
scootergr..
300
8
gibson
300
9
molokyle
287
10
strarup
270
Hvordan ser -1 ud bitvist i C++?
Fra :
Flare
Dato :
10-06-03 14:56
Ja spørgsmålet er i subj.
Jeg snakker om C på en std. intel compatible CPU på windows.
Ser den sådan her ud: ?
10000000000000000000000000000000000001 (30 nuller)
Eller er dette ikke rigtig antaget?
Mvh
Anders
Jens Axel Søgaard (
10-06-2003
)
Kommentar
Fra :
Jens Axel Søgaard
Dato :
10-06-03 15:04
Flare wrote:
> Ja spørgsmålet er i subj.
>
> Jeg snakker om C på en std. intel compatible CPU på windows.
>
> Ser den sådan her ud: ?
>
> 10000000000000000000000000000000000001 (30 nuller)
>
> Eller er dette ikke rigtig antaget?
Det kommer an på om ovenstående er en signed int,
unsigned int eller en double.
--
Jens Axel Søgaard
Flare (
10-06-2003
)
Kommentar
Fra :
Flare
Dato :
10-06-03 15:37
> Det kommer an på om ovenstående er en signed int,
> unsigned int eller en double.
Tallet er signed da det ligger i en signed int.
Anders
Robert Larsen (
10-06-2003
)
Kommentar
Fra :
Robert Larsen
Dato :
10-06-03 15:39
Flare wrote:
> Ja spørgsmålet er i subj.
>
> Jeg snakker om C på en std. intel compatible CPU på windows.
>
> Ser den sådan her ud: ?
>
> 10000000000000000000000000000000000001 (30 nuller)
>
> Eller er dette ikke rigtig antaget?
>
> Mvh
> Anders
>
>
Træk ét fra det positive tal og vend alle bittene. Med signed int (32
bits) er det altså:
1 = 00000000000000000000000000000001
-1 = 11111111111111111111111111111111
30 = 00000000000000000000000000011110
-30 = 11111111111111111111111111100010
VH
Robert
Flare (
10-06-2003
)
Kommentar
Fra :
Flare
Dato :
10-06-03 16:22
> Træk ét fra det positive tal og vend alle bittene. Med signed int (32
> bits) er det altså:
>
> 1 = 00000000000000000000000000000001
> -1 = 11111111111111111111111111111111
>
> 30 = 00000000000000000000000000011110
> -30 = 11111111111111111111111111100010
Takker....Hvem har fået den syge ide at gøre det på den måde.
Mvh
Anders
Bertel Lund Hansen (
10-06-2003
)
Kommentar
Fra :
Bertel Lund Hansen
Dato :
10-06-03 16:34
Flare skrev:
>Takker....Hvem har fået den syge ide at gøre det på den måde.
Dem der synes at 0 kun må kodes på én måde.
Hvad ville du hellere have?
--
Bertel
http://bertel.lundhansen.dk/
FIDUSO:
http://fiduso.dk/
Robert Larsen (
10-06-2003
)
Kommentar
Fra :
Robert Larsen
Dato :
10-06-03 16:51
Bertel Lund Hansen wrote:
> Flare skrev:
>
>
>>Takker....Hvem har fået den syge ide at gøre det på den måde.
>
>
> Dem der synes at 0 kun må kodes på én måde.
>
Og dem som synes at man skal kunne lægge et negativt og et positivt tal
sammen (dog med mulighed for overflow) uden at skulle konvertere det
negative tal til et positivt og trække fra i stedet.
Robert
Christian Larsen (
10-06-2003
)
Kommentar
Fra :
Christian Larsen
Dato :
10-06-03 16:58
"Flare" <dct_flare@hotmail.com> wrote in news:3ee5f786$0$24718
$edfadb0f@dread14.news.tele.dk:
> Takker....Hvem har fået den syge ide at gøre det på den måde.
Det er nu ikke så syg en idé. Forestil dig fx en signed char med værdien
-3. Den repræsenteres således:
11111101
Hvis du kigger på dette tal som et binært tal (og ser bort fra sign-
bit'en), og lægger 3 til, får du:
11111101
+ 11
= 100000000
Det første 1-tal i resultatet bliver skåret væk, da en signed char kun er
på 8 bit, og voila, du har værdien nul. Noget tilsvarende sker ved
subtraktion.
Vh Christian
Mogens Hansen (
10-06-2003
)
Kommentar
Fra :
Mogens Hansen
Dato :
10-06-03 20:34
"Flare" <dct_Flare@hotmail.com> wrote
>
> Ja spørgsmålet er i subj.
Generelt ved man det ikke.
Det er tilladt at bruge 1's complement, 2's complement og signed magnitude
(§3.9.1-7).
Søg eventuelt på Google for at finde en beskrivelse af disse
representationer.
>
> Jeg snakker om C på en std. intel compatible CPU på windows.
Det er 2'ers komplement maskiner.
Altså -1 er representeret som 0xffffffff - altså alle 32 bit sat til 1.
>
> Ser den sådan her ud: ?
>
> 10000000000000000000000000000000000001 (30 nuller)
Det er "signed magnitude" representation.
Venlig hilsen
Mogens Hansen
Søg
Alle emner
Teknologi
Udvikling
C/C++
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177558
Tips :
31968
Nyheder :
719565
Indlæg :
6408924
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.